- 締切済み
ExcelのRAND関数
ExcelのRAND関数で、0から1の間の乱数を発生させることができます。 たとえば、10万行のデータの各行に一度にRAND関数で乱数を発生させた場合(1件目に=RAND()を入力してから下方向コピーする。)、同じ値が発生することはありうるのでしょうか。 データ量が多くなるほど小数点以下の桁数が増えていくので、そのようなことは起きないようになっているのではないかと思いますが、実際はどうなのでしょうか?
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- kagakusuki
- ベストアンサー率51% (2610/5101)
>RAND関数の周期は 10 の 13 乗を超える という事は、例えば10万個のセルに一度にRAND関数で乱数を発生させた場合、1億分の1未満の僅かな確率ではありますが、同じ値が発生するという事になると思います。 因みに、1億分の1未満の確率というのは、10秒ごとに1回ずつ、10万個のセルに一度にRAND関数で乱数を発生させた場合、同じ値が発生するまでに要する平均時間が、31年9ヶ月以上にもなります。 但し、あくまでもこれは確率上の問題ですから、例えば5万人の人間が、同じ事をした場合には、5時間33分20秒に1人程度の割合で、同じ値が発生してしまう人が現れるという事になると思います。
- keithin
- ベストアンサー率66% (5278/7941)
既に出た乱数が「出ない」ように制約をかけたら,それはもう完全な乱数じゃなくなります。 次のセルの=RAND()は,前のセルで出た目を含めた,全部の値が同じ確率で出ます。 つまり次の目で出た数字が出た確率と同じ確率で,ひとつ前のセルと同じ目も出ます。
- f272
- ベストアンサー率46% (8467/18126)
http://support.microsoft.com/kb/828795 これによるとRAND関数の周期は 10 の 13 乗を超えると言っています。 これを信じるとすれば,高々10万(=10 の 5 乗)程度で同じ値が出現することはありません。
- suzukikun
- ベストアンサー率28% (372/1325)
あります。疑似乱数なので完全に全部違うと言うことはありません。ただ再計算(F9)をするとまた内容が変わります。 小数点の桁数が増えるということはないです。下の0を省略しているだけです。
- Cupper-2
- ベストアンサー率29% (1342/4565)
値をコピーしているのではなく、関数をコピーしているので同じ値がならぶことはまずあり得ない。 関数は都度演算を行って結果を返すので、同じ値がならぶことは滅多にありません。
お礼
ありがとうございます。 理論的には同じ値が出現する可能性があるが、10万件程度のデータではユニークな値とみなしてよいという理解でよろしいでしょうか。 会社の実務で使っていて、同じ値が発生するかもしれないことを考慮した方がよいかが、気になっていました。 たとえは悪いですが、同じ値が出るのは、飛行機が落ちる確率にたいなものでしょうか。(感覚的な言い方ですみません。)