![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
No.4ベストアンサー
- 回答日時:
数学的にはどうなるか。
0~1の一様乱数になっているx, yであって、しかもxとyが互いに独立(一方は、他方が幾らであるか、ということとは無関係である)とします。「0~1の一様乱数」ってのは、その確率密度関数をφ1(t)とすると、
φ1(t) = (0≦t<1のとき1, さもなくば 0)
となっているということ。つまり、ヒストグラムを描けば「0≦t<1のとき一定値1であり、それ以外のtについては0である」ということです。(Fig 1赤)
x + y の確率密度関数をφa(t)とすると
φa(t) = (0≦t<1のときt, 1≦t<2のとき1-t, さもなくば 0)
になります。ヒストグラムを描けば二等辺三角形になっている。(Fig1青)
x × y の確率密度関数をφm(t)とすると
φm(t) = -ln(t)
となります。ここにln( )は自然対数です。(Fig1緑)
それぞれの分布関数
Φ(x) = ∫{t=0~x} φ(t) dt
を計算すると、
Φ1(x) = (x<0のとき0, 0≦x<1のときx, 1≦xのとき1) (Fig 2赤)
Φa(x) = (x<0のとき0, 0≦x<1のとき(x^2)/2, 0≦x<1のとき(2-(x-2)^2)/2, 2≦xのとき1) (Fig 2青)
Φm(x) = (x<0のとき0, 0≦x<1のとき(1-ln(x))x, 1≦xのとき1) (Fig 2緑)
![「ランダム関数の足し算とかけ算」の回答画像4](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/5/1783_5497eef1b82e1/M.jpg)
No.2
- 回答日時:
> Excelには、-1~+1までの間でランダムに数値を返す、RND関数がありますが、
手元のExcel 2007で試してみましたが、そんな関数は無かったです。
0以上1未満の乱数を返す、RAND関数なら有りましたが。
(Excel VBAにならRND関数がありますが、こちらも返す値は0以上1未満で、-1~+1ではありません。)
> RND + RND が返す値は-2~+2までの間でランダムな数となるのでしょうか?
仮にそういうRND関数があったとして、範囲は-2~+2になります。
ただし、確率密度関数は一様分布になりません。
(0付近が出現しやすく、-2や+2付近は出現しにくい。)
> RND × RND
こっちの範囲は0~+1になるでしょうね。2乗するのだから負の数は出現しないので。
確率密度関数はやっぱり一様分布にはなりません。
No.1
- 回答日時:
まず、RND関数(ワークシート関数だとRAND関数)の返す値は、-1~+1ではなく、0~1未満(1は含まない)です。
Rnd関数はVBAで使用する場合ですね。返す値は同じです。なので、RAND+RANDが返す値は0~2未満の範囲になります。
RAND関数は、擬似乱数を返す関数なので値の分布は一様分布です。要は0.1が出る確率と0.9が出る確率とは理論的には同じということです。
また、RAND×RANDが返す値の範囲は0~1未満の範囲になりますが、ご想像されてる通り分布は一様分布ではなくなります。下記リンク先にヒストグラムが有りますので見てください。
一様乱数の積は一様乱数にはならない
http://kashino.exblog.jp/12885005/
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB6.0-整数と余りを求める
-
フォームを開くときに、コンボ...
-
C言語 exitの使い方
-
vbaで極大値を抽出する方法
-
DWORDって
-
4択問題のプログラムでランダム...
-
VBAの定数の使い方で、計算値を...
-
ランダム関数の足し算とかけ算
-
C#でのIF文 時間比較のやり方
-
コンボボックスの名前を変数に...
-
数字の位ごとの値を表示するプ...
-
0~180まで0.0001刻みで乱数を...
-
関数で複数の値を戻り値として...
-
VB6でのLog
-
VBAで配列のNULL判定
-
Rubyで1ミリ秒のsleepできない...
-
excelの、ある数式内の{}の意...
-
Variant型で宣言してるのにEmpt...
-
VBAでダブルコーテーション入り...
-
C言語でしりとりのプログラムを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語 exitの使い方
-
フォームを開くときに、コンボ...
-
Excel-vba 文字列と変数を...
-
VB6.0-整数と余りを求める
-
C#で動的にコントロールを取得...
-
数字の位ごとの値を表示するプ...
-
VBAで配列のNULL判定
-
足して100になるような乱数のア...
-
DWORDって
-
世界のナベアツ
-
VBAの定数の使い方で、計算値を...
-
Access2003 オートナンバーの現...
-
コンボボックスの名前を変数に...
-
相関係数p値の出し方
-
ラジオボタンの値の取得につい...
-
フリーランタイマーの時間差分...
-
DataGridView 複数行同時変更...
-
10進数をアスキーコードに変換
-
1つ前の値を変数に保存する方法
-
vbaで極大値を抽出する方法
おすすめ情報