- ベストアンサー
係数を指定して擬似乱数の生成
Javaでユーザーがプログラム中で制御可能な任意の係数を使用して、 擬似乱数を作成する機能が欲しいと考えています。 その様な機能は提供されますか? また、その様な機能を実装しようとすると、どの様にすればよいでしょうか? 実現したい機能としては、 1.ユーザーが係数を任意に指定可能 2.同様の係数が与えられれば、異なるVM上であっても出力される乱数は完全に一致する。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
そのなもずばり java.util.Random クラスというのがあります。
その他の回答 (3)
- hrsmmhr
- ベストアンサー率36% (173/477)
どれくらいの乱雑さが必要でしょうか? 補足など見てると 定数倍して大きな素数で割った余りでも良さそうな気もしますが…
お礼
不特定多数のユーザーが任意のシード値を入力して結果を持ち寄り、 その上で明らかな規則性が見て取れてしまう様な事が無い程度に乱雑であれば問題無いと考えます。 ひとまずjava.util.Randomの動作を弄繰り回して確認してみようと考えています。 (現在javaを開発実行できる環境が手元に無いのでうずうずしておりますが)
- Tacosan
- ベストアンサー率23% (3656/15482)
あなたのいう「係数」って, 何? ふつう「係数」っていうと「なんかの式にかかる倍率」のように聞こえるけど, そうじゃないよね? 「(得られる) 疑似乱数列を制御するために (最初に) 与えるデータ」は「シード」とか「種」とか言います.
お礼
ありがとうございます。 自前で実装する前提で考えていた為、 係数(擬似乱数生成の鍵となる因数値)という表現になってしまいました。 質問させて頂く時に、正確な表現を選ばなければ目的がブレてしまい困ります。 そう言った意味でも勉強になりました。ありがとうございます。 今回は私の言う所の係数=シードという事になりますね。
- edomin7777
- ベストアンサー率40% (711/1750)
乱数と係数の関係を具体的に定義してください。 例)5~15の間の整数乱数 因みに、 > 2.同様の係数が与えられれば、異なるVM上であっても出力される乱数は完全に一致する。 完全に一致したら乱数とは言わない…。 (範囲が同じということ?)
補足
>乱数と係数の関係を具体的に定義してください。 >例)5~15の間の整数乱数 説明が足りていませんでした。申し訳ありません。 乱数の範囲はint型で扱える範囲の値を指定したいです。 また、係数はDate(long)値程度の範囲の指定が出来れば十分かと考えています。 ありがとうございます。 >完全に一致したら乱数とは言わない…。 乱数の場合一致したら乱数とは言えませんね。 今回は乱数でかつ、再現性を求めたい為に擬似乱数に関して調べておりました。
お礼
ありがとうございます! Math.random()の方しか無いと早合点していました。 第二コンストラクタが引数に取る「long 型のシード」という物が、 私の言うところの擬似乱数生成の係数となるのでしょうか。 ひとまず、これでどうなるか試してみようと思います。 ありがとうございます。 ※ちなみに何がしたいかと言いますと、 ちょっと古いんですがバーコードバトラー的な事がしたいです。