質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

Q&A

解決済

1回答

3707閲覧

漸化式をC言語で計算したい

yuharu

総合スコア3

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

0グッド

0クリップ

投稿2020/11/10 02:56

編集2020/11/10 09:43

漸化式を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から何を書けば良いのか分からないので教えていただけると助かります。よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

episteme

2020/11/10 03:26

>漸化式xn+1=[(53xn+29)mod65536](n=0,1,...)を解きたいです。 x0 はいくつ?
yuharu

2020/11/10 09:44

x0は123456です。
guest

回答1

0

ベストアンサー

C

1#include <stdio.h> 2 3void lcg(int* x) { 4 *x = (53 * *x + 29) % 65536; /* コレがわからんかった? */ 5} 6 7int main(void){ 8 int n; 9 int nmax=100; 10 int x=123456; 11 for ( n = 1; n <= nmax; n++ ){ 12 lcg(&x); 13 printf("x(%d) = %d\n",n, x); 14 } 15 return 0; 16}

投稿2020/11/10 10:21

episteme

総合スコア16614

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yuharu

2020/11/11 09:56

ありがとうございます!助かりました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問