• 締切済み

ランダムな数を書き換える方法

配列0~1000の中にそれぞれ -1~+1の範囲で等分布でランダムな数値が入っているとします。 この配列のそれぞれの数値を同じく-1~+1の範囲で等分布のままで 別のランダム数値に書き換えるプログラムを作りたいのですが どのようにすれば良いでしょうか?

みんなの回答

  • ShowMeHow
  • ベストアンサー率28% (1424/5027)
回答No.2

vb(a) でしたら、 randomize(now()) for i = 0 to 1000 A(i) =2*rnd()-1 next i http://msdn.microsoft.com/ja-jp/library/cc410290.aspx 「等分布のまま」=-1~+1の間のランダム値で書き換える と理解しましたが、そういうことでしょうか?

  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.1

数値を書き換えせずに、ランダムに並べ替え、シャッフルすれば、分布は変わらないのでは。 > 別のランダム数値に書き換えるプログラムを作りたいのですが ランダム数値の分布になっちゃいます。 一般的な一様分布の乱数使えば、全体の分布が一様分布に近づくとか。 事前に分布?を調べて、その分布に沿ったランダムな数値を作成ってのは、かなり面倒かも。