真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Pell函數(shù)c語言,c語言fill函數(shù)

求解一個佩爾方程

方程沒有10億以內(nèi)的解,手動計(jì)算應(yīng)該是行不通的

成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比馬山網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式馬山網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋馬山地區(qū)。費(fèi)用合理售后完善,十余年實(shí)體公司更值得信賴。

我寫了一個程序,計(jì)算出方程的一組特解:

x=379516400906811930638014896080

y=12055735790331359447442538767

算法是求√991的漸進(jìn)連分?jǐn)?shù)h0/k0,h1/k1...h(l-1)/k(l-1),l是連分?jǐn)?shù)的最小正周期,若l是偶數(shù),則h(l-1)和k(l-1)就是pell方程的一組特解,否則h(2l - 1)和k(2l- 1)是方程的一組特解。證明可以在任何一本數(shù)論書上找到,不再贅述,也可以參考wiki百科的pell方程條目

程序附在后面,C++寫的,任何一個windows平臺下的C++編譯器都可以編譯(VC++,DEVCPP等等),涉及到大整數(shù)的運(yùn)算比較麻煩,用matlab寫起來會更簡單

程序清單:

#include stdio.h

#include stdlib.h

#include memory.h

#include math.h

#define LEN 200

#define BASE 10000000 //大整數(shù)用10^7進(jìn)制來計(jì)算

typedef __int64 INT;

struct BIG //大整數(shù)結(jié)構(gòu)定義,整數(shù)每7位拼成一個int64,這樣加減乘計(jì)算耗時較少

{

INT a[LEN];//存放大整數(shù)的數(shù)組

int len; //標(biāo)記大整數(shù)的長度,不能超過200

}h[3],k[3];

INT a[1 14],c[1 14],q[1 14];

/*實(shí)際是計(jì)算:

h[i] = n*h[i - 1] + h[i - 2];

k[i] = n*k[i - 1] + k[i - 2];

這是連分?jǐn)?shù)的遞推形式

*/

void go(INT n)

{

int i;

for(i = 0;i h[1].len;i++)

h[2].a[i] = h[1].a[i] * n + h[0].a[i];

for(i = 0;i h[1].len;i++)

h[2].a[i + 1] += h[2].a[i] / BASE,h[2].a[i] %= BASE;

if(h[2].a[h[2].len])

h[2].len++;

for(i = 0;i k[1].len;i++)

k[2].a[i] = k[1].a[i] * n + k[0].a[i];

for(i = 0;i k[1].len;i++)

k[2].a[i + 1] += k[2].a[i] / BASE,k[2].a[i] %= BASE;

if(k[2].a[k[2].len])

k[2].len++;

for(i = 0;i 2;i++)

h[i] = h[i + 1],k[i] = k[i + 1];

}

void print(BIG a) //把大整數(shù)輸出

{

int i;

printf("%I64d",a.a[a.len - 1]);

for(i = a.len - 2;i = 0;i--)

printf("%07I64d",a.a[i]);

}

int main()

{

int i,j,len;

bool use = false;

c[0] = 0,q[0] = 1,a[0] = 31;

for(i = 1;;i++) //尋找連分?jǐn)?shù)循環(huán)節(jié),j-i是最小循環(huán)周期

{

c[i] = a[i - 1] * q[i - 1] - c[i - 1];

q[i] = (991 - c[i] * c[i])/q[i - 1];

a[i] = (a[0] + c[i])/q[i];

if(!use)

{

for(j = 0;j i;j++)

{

if(c[i] == c[j] a[i] == a[j] q[i] == q[j])

{

len = i - j;

break;

}

}

if(j i)

break;

}

}

if(len 1) //循環(huán)節(jié)長度是奇數(shù),長度要乘以2

len = 1;

for(i = 0;i 3;i++)

{

memset(h[i].a,0,sizeof(h[i].a));

memset(k[i].a,0,sizeof(k[i].a));

h[i].len = k[i].len = 0;

}

h[0].a[0] = a[0],h[0].len = 1;

h[1].a[0] = a[0] * a[1] + 1;

h[1].len = 1;

k[0].a[0] = 1,k[0].len = 1;

k[1].a[0] = a[1],k[1].len = 1;

for(i = 2;i len;i++)

go(a[i]);

printf("x = ");

print(h[2]);

printf(" ");

printf("y = ");

print(k[2]);

printf("\n");

system("PAUSE");

return 0;

}

佩爾方程解的證明

佩爾方程

Pell方程,由費(fèi)馬提出,但后來歐拉誤記為佩爾提出,并寫入他的著作中。后人多稱佩爾方程。沿續(xù)至今。

 基本內(nèi)容

設(shè)d是正整數(shù),且d不含平方因子。

下面的不定方程稱為佩爾(Pell)方程:

x^2-dy^2=1

求正整數(shù)解(x,y).

這是初等數(shù)論中最經(jīng)典的內(nèi)容之一。

假設(shè)(x_0,y_0)是一個最小解, 那么所有的解可寫為

x_n+y_n*(d)^0.5=(x_0+y_0*(d)^0.5)^(n+1)

佩爾方程與連分?jǐn)?shù),二次型,代數(shù)數(shù)域等等都有密切聯(lián)系。

在一般的函數(shù)域上,我們也有類似的佩爾方程, 它和向量叢的穩(wěn)定性有著微妙的關(guān)系。

簡單C語言求大神

#includestdio.h

#includestring.h

int?main()

{

int?n?=?0,?m?=?0;

int?i?=?0,j?=?0;

char?a[81]?=?"";

char?*p?=?NULL;

while(EOF?!=scanf("%d",n))

{

if?(n??1?||?n??1000)

continue;

break;

}

while?(i??n)

{

scanf("%d?%s",m,a);

p?=?a?+?m;

*(p?-?1)?=?'\0';

printf("%d?%s%s\n",++i,a,p);

}

return?0;

}

C語言,數(shù)據(jù)結(jié)構(gòu),

#include?stdio.h

#include?"stdlib.h"

int?main(void){

int?n,i,j,k,t,r,*p;

printf("Input?n(int?n0)...\nn=");

if(scanf("%d",n)!=1?||?n1){

printf("Input?error,?exit...\n");

return?0;

}

if((p=(int?*)malloc(sizeof(int)*n))==NULL){

printf("Application?memory?failure...\n");

return?0;

}

printf("Input?k(int?0k100000)...\n");

i=-1;

while(++in){

while(scanf("%d",k)!=1?||?k1?||?k99999){

printf("Error,?redo:");

fflush(stdin);

}

p[i]=k;

}

for(t=0;tn;t++)

if(p[t]2){

for(i=1,j=k=2;kp[t];k++)

r=((i%=32767)+((j%=32767)*2)%32767)%32767,i=j,j=r;

printf("%d\n",r);

}

else

printf("%d\n",p[t]);

free(p);

printf("\n");

return?0;

}

pell方程通解

佩爾方程是一種不定二次方程。

古希臘數(shù)學(xué)家在計(jì)算2的平方根時,嘗試使用了這類方程中的一個,婆羅摩笈多(Brahmagupta)對佩爾方程的研究進(jìn)行了最早的貢獻(xiàn) ,佩爾方程和歐幾里德算法一起使用,可計(jì)算一個正整數(shù)的平方根的近似值 。由于歐拉最早把此類方程稱為佩爾方程,所以就有了這個名詞了。實(shí)際上,數(shù)學(xué)家費(fèi)馬深入研究了這類方程,拉格朗日給出了解決方案 。所以在數(shù)學(xué)界,它也被稱為“佩爾-費(fèi)馬方程”。

設(shè)d是正整數(shù),且非平方數(shù)。

下面的不定方程稱為佩爾(Pell)方程:

佩爾方程

佩爾方程

....(1)

(1)一定有無窮多組正整數(shù)解

這是初等數(shù)論中最經(jīng)典的內(nèi)容之一。

佩爾方程

佩爾方程

佩爾方程

佩爾方程

假設(shè)( )是①中使 最小的正整數(shù)解(稱(1)的基本解), 那么①的所有的正整數(shù)解可寫為

x_n=1/2[(x_1+y_1d^0.5)^n+(x_1-y_1d^0.5)^n]

y_n=1/(2d^0.5)[(x_1+y_1d^0.5)^n-(x_1-y_1d^0.5)^n]

∴x_n+y_n*(d)^0.5=(x_0+y_0d^0.5)^(n+1)

且不難導(dǎo)出x_n,y_n滿足的線性遞推關(guān)系

x_n=2x_1x_(n-1)-x_(n-2)

y_n=2x_1y_(n-1)-y_(n-2)

佩爾方程與連分?jǐn)?shù),二次型,代數(shù)數(shù)域等等都有密切聯(lián)系。

在一般的函數(shù)域上,我們也有類似的佩爾方程, 它和向量叢的穩(wěn)定性有著微妙的關(guān)系。

以上的公式就是Pell方程的一般形態(tài)

佩爾方程通解

d不為完全平方數(shù)時時存在無窮多個解

解的存在性證明:

佩爾方程

佩爾方程

佩爾方程

佩爾方程

(1) 首先證明存在無窮多個正整數(shù) 滿足 .

佩爾方程

佩爾方程

佩爾方程

佩爾方程

佩爾方程

佩爾方程

佩爾方程

佩爾方程

佩爾方程

佩爾方程

佩爾方程

佩爾方程

佩爾方程

佩爾方程

佩爾方程

佩爾方程

佩爾方程

佩爾方程

佩爾方程

佩爾方程

記 = ,考察集合 ,顯然對于任意正整數(shù)Q1,均存在 滿足 (事實(shí)上,此集合中每個元數(shù)都在(0,1)之內(nèi) . 作區(qū)間 、 、 、 ,那么當(dāng) 從0取到Q時,由抽屜原理即知)

佩爾方程

佩爾方程

于是 ,

佩爾方程

佩爾方程

即 .

佩爾方程

佩爾方程

讓Q從小到大取遍所有正整數(shù),就可得到無窮多組正整數(shù) .


當(dāng)前文章:Pell函數(shù)c語言,c語言fill函數(shù)
本文來源:http://weahome.cn/article/hsgcci.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部