javaを使って乱数を発生するプログラムを作っています。
線形合同法(乗算型)に基づいて発生させようと思うのですが、疑問点があり質問しました。
乱数発生の漸化式
X(i+1)= a*X(i) (mod M)
で、a,M,そして乱数の初期値を決めたいのですが、ネットを使って調べたところ、
a=16807
M=2147483647
が良いという記述がありました。
しかし、これをプログラムに反映させるとintの範囲から出てしまうため、検出値にマイナスが入ってしまいます。
また乱数の初期値に関する記述が見つからなかったので、どのような値にすべきか悩んでいます。
また、検出値をある範囲に(例えば100000まで)にしたい場合は、M=100000にすればいいと思うのですが、その場合のaや初期値の値はどのように決定したらよいのでしょうか?
教えて下さい。よろしくお願いします。
No.2ベストアンサー
- 回答日時:
> 「乗算の結果あふれた部分」というのは、「マイナスになってしまう検出値」という解釈でいいのでしょうか?
たとえば8ビットに単純化して話をすると
0xff × 0xff とかすると 0xfffe がその積になりますが、ここで
上位の0xff は無視するという意味です。
有符号の32bit整数であるなら、0x7fff_ffffを越えたところでは
最上位ビットは無視するということでいいのではないでしょうか。
これはまあ「マイナスになってしまった値」ですけどね。
2度も回答していただいてどうもありがとうございます。
8ビットの知識は全く無いのですが、なんとなく理解できました。
ありがとうございます
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java Javaの問題なのですが、 永久ループを使って以下に従って数値を出力するプログラムを作成する。 ・1 3 2023/06/06 18:43
- その他(コンピューター・テクノロジー) エクセルの課題について 1 2022/07/25 14:39
- 工学 疑似乱数生成器 3 2023/01/05 02:06
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- C言語・C++・C# このプログラミングの問題を教えて欲しいです。 キーボードから整数kを入力し、kが配列aの中に何個存在 2 2022/12/19 22:50
- C言語・C++・C# C言語 3 2022/10/04 15:07
- 物理学 【流体力学】乱流での渦の発生周期について 1 2023/08/20 18:27
- Java Java 石取りゲーム 3 2023/02/02 15:46
- 物理学 大学物理に詳しい方に質問です。 ラザフォードたちが実験で知りたかったことは衝突パラメータbと原子核の 1 2023/03/16 03:39
- Excel(エクセル) エクセル 条件に合う日付に入力された時間数の合計したい 4 2022/06/17 22:18
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
javaのCSVデータ読込についてです
-
このプログラミング誰か教えて...
-
ダブルクォーテーションを含む...
-
wsprintf関数の使い方について
-
memcpyで画像を送りたいのです...
-
このプログラミング誰か教えて...
-
hiddenの値を消したくない!
-
DateTimePickerに値を入れたい...
-
JSPでの計算結果表示
-
JSPやサーブレットでSystem.out...
-
ダブルクォーテーションのrepla...
-
ページング
-
ループ処理の際、最後だけ","を...
-
ORA-01858: 数値を指定する箇所...
-
C言語のポインターに関する警告
-
続・ZZZ,ZZZ,ZZ9形式の金額形式...
-
IF関数でEmpty値を設定する方法。
-
干支の計算で。。。
-
System.err. printlnとSystem.o...
-
javaで質問です。 文字列2023/2...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ダブルクォーテーションを含む...
-
ArrayListの要素数の上限
-
DateTimePickerに値を入れたい...
-
wsprintf関数の使い方について
-
Stringクラスの変数の格納アド...
-
BCD形式で時刻を!
-
javaのCSVデータ読込についてです
-
このプログラミング誰か教えて...
-
Evaluate()に文字列の形式の数...
-
このプログラミング誰か教えて...
-
JSPでHashMap・配列の変数の値...
-
特定の文字列を複数抜き出した...
-
matchesを否定文として使う方法...
-
DOSバッチで変数の値を変数名に...
-
Javaの問題なのですが、「3文字...
-
excel vba 時間計算と条件分岐...
-
実行シェルからCOBOLへパラメー...
-
日付や時刻の"01"を" 1"に変換...
-
VB6,論理演算子Orの使い方がわ...
-
char型での演算子
おすすめ情報