裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

乱数の実装を問題にする?

2014年12月28日 | ブログラミング

C# で 0 から 9 の数字が入っている配列をシャッフルするコードを書いてください。 配列のサイズは 10 で全て異なる数値です。0 から 9 が順番に入っている配列になります。 ただし、配列のシャッフルではそれぞれの数値が出力される確率に偏りがあってはいけません。
正しい実装では今回の場合、1万回~10万回ほど実行してもそれぞれの数値が0番目の位置に現れる確率はいずれも10%に近くなります

然るべき乱数発生エンジンを使えば良いだけ。そのようなものが使えないシステムは使うべきではない。ちなみに,例題の結果として示されているのは,たまたまなので,けっこうばらつきのある結果も出るもんだよ。R だと,以下のようになるね。

> a = sample(0:9, 1e6, replace=TRUE)
> table(a)/1e6 * 100
a
       0       1       2       3       4       5       6       7       8       9
  9.9577 10.0018 10.0432 10.0209  9.9628 10.0059  9.9601 10.0122 10.0420  9.9934

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« モールス符号 | トップ | 10 を作る(その 2) »
最新の画像もっと見る

コメントを投稿

ブログラミング」カテゴリの最新記事