プロが教える店舗&オフィスのセキュリティ対策術

タイトルのままですが、
0.0~180.0まで0.0001刻みで効率よく乱数を発生させたいのですが、いまいち良い方法が浮かびません。

よろしくお願いします。

A 回答 (3件)

>効率よく


の意味がわかりませんが.
7桁ですと.通常の組込み関数が使えません。私が使っていた(通常3桁で十分なので.組込み関数を愛用しています)方法は.JIS(番号忘却)の乱数表を入力し.組込み関数のひとつの乱数から.ひとつの乱数表を選択し.乱数表の読みから.その回数だけ.組込み関数を読み捨てて.一桁目の乱数の値を決めます。これを必要桁数繰り返すと.ある程度均一な.循環が起こりにくい.擬似乱数をえられます。

どの乱数表を選択するか.乱数表内のどの値を使うか.組込み関数を何回読み捨てるか.に組込み関数を使います。

乱数の均一性については.ご質問文から検定などが可能な方と解釈しました。検定だけは行ってください。
立方体での収束の問題は.たしか.組込み関数を読み捨てることで解決できるはずです。この問題解決の為に.組込み関数の読み捨てという方法を使っています。
    • good
    • 0

「0.0001刻みの乱数」なるものがよくわかりません。


乱数だったら刻みはバラバラなのでは?

とりあえず0~1800000までの乱数(整数)を10000で
割るってのはダメですか?
    • good
    • 0

発生させた乱数を変数ransuuに格納するとします。



たとえば、0.0から180.0まで「0.1刻み」なら、
0から1800まで、1801個の数値をランダムに生成し10で割る以下の式になります。

rannsuu = int(rnd()*1801)/10

ちょっと一般的にやるなら、

kizami = 0.0001
ransuu = int(rnd()*(180/kizami+1))*kizami
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!