漸化式をC言語で計算したいのですが、計算の仕方が分かりません。
C言語で漸化式xn+1=(53xn+29)mod65536を解きたいです。
以下が現在記入しているところまでです。
C
1#include <stdio.h> 2 3 //problem 1 4void ao3(int *x){ 5 int tmp; 6 if (x[0] > x[1]){ 7 tmp=x[0]; 8 x[0]=x[1]; 9 x[1]=tmp; 10 } 11 if (x[1] > x[2]){ 12 tmp=x[1]; 13 x[1]=x[2]; 14 x[2]=tmp; 15 } 16 if (x[0] > x[1]){ 17 tmp=x[0]; 18 x[0]=x[1]; 19 x[1]=tmp; 20 } 21} 22int main(void){ 23 int a[3]={3,2,1}; 24 printf("%d %d %d\n",a[0],a[1],a[2]); 25 ao3(a); 26 printf("%d %d %d\n",a[0],a[1],a[2]); 27 28 return 0; 29} 30 31// problem 2 32void lcg() 33{ 34 35 36 37 38 39} 40 41int main(void){ 42int n; 43int a[3]={4,5,1}; ao3(a); 44for (n=0;n<3;n++){ 45 printf("%d ",a[n]); 46} 47puts(""); 48int nmax=100; 49int x=123456; 50for (n=1;n<=nmax;n++){ 51 lcg(&x); 52} 53printf("%d\n",x); 54 55return 0; 56}
//problem 2から下のvoid lag()に何を書けば計算できるか分からない状態です。
C
1void lcg() 2{ 3 4 5 6 7 8}
以下の記述はint x=に6桁の数字を入れた時のとしたとき、x100の値の計算になります。
C
1int main(void){ 2int n; 3int a[3]={4,5,1}; ao3(a); 4for (n=0;n<3;n++){ 5 printf("%d ",a[n]); 6} 7puts(""); 8int nmax=100; 9int x=123456; 10for (n=1;n<=nmax;n++){ 11 lcg(&x); 12} 13printf("%d\n",x); 14 15return 0; 16}
######void lcgから何を書けば良いのか分からないので教えていただけると助かります。よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー