乱数を、特定の変数に入れるのにはどうしたらいいか? – プログラミング – Home

乱数を、特定の変数に入れるのにはどうし...
 
通知
すべてクリア

乱数を、特定の変数に入れるのにはどうしたらいいか?


いえやす
 いえやす
(@いえやす)
ゲスト
結合: 15年前
投稿: 18
Topic starter  

乱数を、
特定の配列 M[s][t]
に入れてやろうと思い、
メルセンヌ・ツイスタと呼ばれる
下記のコードを組んだのですが、
どうも、自信がありません。
(コンパイルで引っかかります)
genrand_int32()やsrand()
などをして、得られた乱数を、
下記のように、int型なりdouble型の変数に入れるには、
下記のようなやりかたで、いいのでしょうか?

#include MT.h
#define N 4
double M[N][N + 1]
int s,t;
init_genrand(10);
for(s=0;s<N;s++)
for (t=0;t<(N+1);t++)
{
printf(%ld\n,genrand_int32());
M[s][t] = genrand_int32(s*(N+1)+t);
}
}

この中で、呼んでいる
Mt.hに関しては、
http://www.sat.t.u-tokyo.ac.jp/~omi/code/MT.h
です。


引用解決済
トピックタグ
瀬戸っぷ
 瀬戸っぷ
(@瀬戸っぷ)
ゲスト
結合: 18年前
投稿: 178
 

> printf(%ld\n,genrand_int32());
> M[s][t] = genrand_int32(s*(N+1)+t);

genrand_int32()は引数なしなので、後者の使い方は正しくありません。
# リンクエラーになる…か???

M[s][t] = genrand_int32();
printf(%ld\n,M[s][t]);

ってところじゃないですかね。
ただし、作成される乱数は32ビット符号有りでしょうから、double型の変数に入れる際に
暗黙の型変換が行われるかと。

あと…
>init_genrand(10);
種を定数で初期化すると、作成される乱数列も一緒になると思いますよ。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました