
xorshiftという乱数生成プログラムがあります。
この乱数の最大値が知りたいのですが、ご存じの方がいらっしゃいましたら教えてください。
unsigned long xorshiftrand(void) {
static unsigned long
x=123456789, y=362436069,
z=521288629, w=88675123;
unsigned long t;
t = x ^ (x << 11);
x = y; y = z; z = w;
return w = (w ^ (w >> 19)) ^ (t ^ (t >> 8));
}
A 回答 (3件)
- 最新から表示
- 回答順に表示

No.2
- 回答日時:
実際にやってみました。
以下のソースで実行しました。
int main()
{
unsigned long max = 0;
unsigned long ret = 0;
unsigned inti;
for (i=0; i<ULONG_MAX;;++){
ret = xorshiftrand();
if (ret > max) max = ret;
}
printf ("i=%lu max=%lu\n",i,max);
return 0;
}
-----------------
100万回に1回最大値を印字します。
以下実行結果
i=0 max=3701687786
i=1000000 max=4294966536
i=2000000 max=4294966536
i=3000000 max=4294966536
中略
i=288000000 max=4294967292
i=289000000 max=4294967292
i=290000000 max=4294967295
i=291000000 max=4294967295
-----------------------------
32ビットの環境です。
290000000回実行すると、unsigned longの最大値
4294967295を返しています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Vba Replace関数について教えて...
-
CSSが全く分かりません、お助け...
-
CPUが16bitでも32bitOSでコンパ...
-
最初に聞かれたこと
-
DLLファイルの逆コンパイラにつ...
-
C言語 関数、変数の宣言について
-
C言語でファクト関数を使わずに...
-
あってる
-
DNCL(共テ用プログラミング言語...
-
バッチファイルで以下のような...
-
visual studio 2022でのC#プロ...
-
プログラミングc++を全く分か...
-
DNCL(共テ用プログラミング言語...
-
C言語 配列と関数の練習問題
-
gccを行ってもexeファイルが生...
-
c言語
-
VisualStudio2022でC言語プログ...
-
ストリームについて。
-
Cのオブジェクトファイルの逆ア...
-
Windows Formアプリからコンソ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
eclipseで、「ポート番号が使用...
-
Excel実行時エラー-2146959355?
-
PC版のMinecraftが応答なしにな...
-
パソコンに何かが勝手にダウン...
-
VB.NETでボタンのクリックイベ...
-
パソコンのスクリーンセーバー...
-
エクセルVBA、ステップモードと...
-
プログラム実行中に強制停止さ...
-
VB.NETでDataTableにデータ追加...
-
管理者として実行を毎回すると...
-
Windows10 で青鬼を遊びたいの...
-
jbossとjdkの関係性、違いにつ...
-
動的ライブラリ中のグローバル変数
-
プログラミングについてです。...
-
latexでのエラー
-
大戦略大東亜興亡史1ニイガタ...
-
「管理者として実行」された場...
-
プロパティの値が不正ですって...
-
コマンドプロンプトを表示しな...
-
EXCEL-VBAでコマンド...
おすすめ情報