検索しても情報が見つからなかったので教えてください。


Excelには、-1~+1までの間でランダムに数値を返す、RND関数がありますが、

RND + RND が返す値は-2~+2までの間でランダムな数となるのでしょうか?


また、RND × RND が返す値はどのような分布になるのでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (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
    • good
    • 0

http://www.relief.jp/itnote/archives/001183.php

ここらへんが参考になるのかもしれないです。
    • good
    • 0

> 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乗するのだから負の数は出現しないので。
確率密度関数はやっぱり一様分布にはなりません。
    • good
    • 0

まず、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/
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q足し算と引き算ができるポータブルゲームってないですか?GBみたいなやつで。

こんにちは。

足し算と引き算が遅いので、電車の中とかで、ゲームボーイアドバンスをやるような感じで、足し算と引き算の練習の出来るソフトやゲームってないですか?

ご存知の方教えてください。

Aベストアンサー

 ANo.#1です。はい、あります。
最初は 足し算 引き算 掛け算 だけですが、
後でむずかしい問題として 割り算も加わったモードも出てきます。

 別のものは わかりませんが、
このソフトだけでも けっこう問題はありますし、
ペンを使った操作も画期的です。
ソフトと本体をそろえるには 少々高価かもしれませんが、
ほかにもソフトもあるようですし それなりに使えると思います。

QExcelで、ある検索値(X)が、検索範囲に存在する場合、Xを出力するには?

ある検索値(A列の1つのセル)が、ある検索範囲(B列)に存在する場合、
C列には“検索値があればブランク、検索値がなければ、検索値を出力する”という結果を出力する場合、何か良い式の作り方はないでしょうか?

現在は =IF ( COUNTIF($B$1:$B$3,A1) >=1, "" , A1 )
という式で行っているのですが、他に何かよい方法があれば知りたいと想い、お知恵をお借りしたく質問させて頂きました。


※A列:検索するセルの値
※B列:検索範囲
※C列:検索値が、検索範囲に存在していれば、ブランク、存在しなければ、検索値を表示する。

A列   B列    C列
-----------------------------------
1あああ あああ   ブランク
2いいい いいい   ブランク
3ううう  えええ   ううう

※検索値"ううう"は、検索範囲B列に存在しないため、C列の式が埋め込まれたセルに"ううう"と出力される。
-----------------------------------
ということが実現できる方法を探しています。

用途としては
「Aの情報とBの情報の同一データ(文字)の削除」が目的であり、最終的に出力されるCの情報には

「Aがもっていて、Bがもっていない情報と、Bがもっていて、Aが持っていない情報の結合」

を行いたいと考えています。

今のところExcelでの実現を考えているのですが、もしExcel以外の他にも実現方法をご存知の方がおられましたらお知恵を貸してください、よろしくお願いいたします。

ある検索値(A列の1つのセル)が、ある検索範囲(B列)に存在する場合、
C列には“検索値があればブランク、検索値がなければ、検索値を出力する”という結果を出力する場合、何か良い式の作り方はないでしょうか?

現在は =IF ( COUNTIF($B$1:$B$3,A1) >=1, "" , A1 )
という式で行っているのですが、他に何かよい方法があれば知りたいと想い、お知恵をお借りしたく質問させて頂きました。


※A列:検索するセルの値
※B列:検索範囲
※C列:検索値が、検索範囲に存在していれば、ブランク、存在し...続きを読む

Aベストアンサー

>「Aがもっていて、Bがもっていない情報と、Bがもっていて、Aが持っていない情報の結合」

という事は、A列とB列の同じ行のセルの両方に、その列にしか無い情報が入力されている場合には、A列の情報とB列の情報を結合したデータを、C列のセルに表示させるのでしょうか。
 例えば、御質問文中の例では、C3セルには

うううえええ

と表示させれば良いのでしょうか。
 それならば、以下の方法で良いと思います。
 今仮に、検索範囲の最終行を99だとした場合の方法を述べさせて頂きます。
 まず、C1セルに

=IF(COUNTIF($B$1:$B$99,A1)=0,A1, "")&IF(COUNTIF($A$1:$A$99,B1)=0,B1, "")

と入力します。
 次に、C1セルを、C2~C99の範囲のセルにコピーします。
 以上で完了です。

Q足し算引き算の教え方

来年小学生になります。
ダイレクトメールの中のお試しの学習をやったら面白いらしく、もっとやりたいと言うので本屋さんで何冊か買ってきました。
最初に買った3冊は、数字簡単な計算、知恵、言葉です。
これはやり終えました。
次に買ったのは七田式というのです。
これで引き算が出てきたのですが、どうも分からないようです。
今の時代、どういうふうに足し算引き算を教えているのか分からないので、
変なふうに教えて入学してから躓きの元になっても困るなと悩みだしました。
足し算は、例えば5+3なら5を頭の中に入れて、6,7,8、と指で3こ数えて8を出す・・・
今は指を使わなくても、頭の中で数えられますが、考え方は同じです。
これも正しいのかわかりません。
引き算にいたっては、どう教えていいのか分かりません。
今は、7は4と□という問題があり、7-4=□という問題があります。
たしざんと同じく、4を頭に入れて、5,6,7だから3と言う考え方ですが、何か無理がありそうな気がします。
どんなふうに教えたらよいか。また、よい問題集などありましたら教えてください。
せっかく本人がやる気があり、楽しみに毎日1ページやっているので続けさせたほうがいいと思うのです。
よろしくお願いします

来年小学生になります。
ダイレクトメールの中のお試しの学習をやったら面白いらしく、もっとやりたいと言うので本屋さんで何冊か買ってきました。
最初に買った3冊は、数字簡単な計算、知恵、言葉です。
これはやり終えました。
次に買ったのは七田式というのです。
これで引き算が出てきたのですが、どうも分からないようです。
今の時代、どういうふうに足し算引き算を教えているのか分からないので、
変なふうに教えて入学してから躓きの元になっても困るなと悩みだしました。
足し算は、例えば5+3なら5を...続きを読む

Aベストアンサー

数えながら足す、数えながら引く、という計算の仕方を覚えさせては駄目ですよ。
指やものを使わないと計算できなくなります。
小学校では指を使って数えさせませんよ。

1の次が2、2の次が3、3の次が4という数える数字ではなく、何でも良いですから、3つのものを見て、3と言えるようになる、4つのものを見て4と言えるようになる、少なくとも10までの数を認識する事から始めないと、1から数えないと2も3も分からない状態が続きます。
そうなると、10を超えたらパニックです。
数が大きくなればなるほど、数えてはいられませんよね。
かけ算を習う時のように、足し算も引き算もある程度暗記の領域に引き上げるのが一番です。

>足し算は、例えば5+3なら5を頭の中に入れて、6,7,8、と指で3こ数えて8を出す・・・
数える必要はないのです。
算数は答えがひとつしかないのですから、最初から8で良いのです。
なぜ8になるのか、それだけ先に教えれば良いのです。

引き算も同じです。
7-4は3以外の何ものでもありません。
なぜ3になるのか、引き算とは何なのか、それだけ教えれば良いのです。


計算問題の問題集と言えば、公文に他ならないとは思います。
ある程度できるようになれば、百マス計算も良いと思います。

数えながら足す、数えながら引く、という計算の仕方を覚えさせては駄目ですよ。
指やものを使わないと計算できなくなります。
小学校では指を使って数えさせませんよ。

1の次が2、2の次が3、3の次が4という数える数字ではなく、何でも良いですから、3つのものを見て、3と言えるようになる、4つのものを見て4と言えるようになる、少なくとも10までの数を認識する事から始めないと、1から数えないと2も3も分からない状態が続きます。
そうなると、10を超えたらパニックです。
数が大きくなればな...続きを読む

Qランダム関数の物理的な仕組み

ハードウェアのところで質問しようと思いましたが、
サーバと書いてあったので、こちらにしました。

プログラミングにはランダム関数というものが、必ず(とは言えないかもしれませんが)あると思います。しかし、この内部構造はどうなっているのでしょうか。

PC内部が電圧で振り分けられて、スイッチがONになったりOFFになったり、もしくは0と1の世界…といった表現で説明されていますが、そういった事は意味は多少わかっているつもりです。

ランダム関数は、数値を適当に返してくるわけですが、この適当なデータをどのように、内部的物理的に発生させているのでしょうか。
ゲームなどでは必需品の仕組みですが…簡単に説明していただけないでしょうか。検索しても物理的なことを説明しているWebページは、案の定見つかりませんでした。

わかる方がいましたら、よろしくお願いします。

Aベストアンサー

ランダム関数はハード的に存在しているものではなく、ソフト的なものです。ランダム関数は各々のプログラム言語のライブラリのなかにあります。関数を使って擬似的に乱数を生成しています。自然現象のように本当の意味でランダムなものではありません。

Q単純な計算を100問位永遠に解いていく携帯ゲームの名前??

先日テレビを見ているとボケ防止と、頭の体操用に、ゲームボーイより少し大きなサイズぐらいの携帯用のゲームで単純な計算(足し算割り算など)を100問位永遠に解いていくゲームが紹介をされていたのですが、このゲーム機がほしいのですが、名前が分かりません。

誰か教えてください。。。

Aベストアンサー

こちらの「能力トレーナー」でしょうか?

参考URL:http://www.osamanoidea.com/W121940.html

Qシェルで、ランダム関数を変数に代入したい

#!/bin/bash

(1)BAR = `awk ' { printf("%d", srand()%10) }'`
(2)BAR = `awk '{ print srand()%10 }'`
(3)BAR = `awk '{ print int(10.0*rand()) }'`

echo "$BAR"

上記のように変数にランダム関数を代入したいのですが、うまくいきません。

awk '{ print int(10*rand()) }'

だけでうってみると、




………

のように、延々と続いてしまい、一回で終わらないのがとても気になります。

awk ' function hoge(n){ return 1 + int(rand()*n) } { print hoge(10) } '

のように、関数をからませてもうまくいきません。

どうか、解説をお願いします。

なお、OSはLINUXのFedora10で、Tera Termを使ってクライアントから操作しています。

Aベストアンサー

> もしよければ、 [ ] はどういうときに使用するものか(if文のカッコなのかなど)、 $2つの意味をご教授願えないでしょうか。

$RANDOMは,乱数を返します。
$RANDOM % 10は,$RANDOMを10で割った余りを返す式です。
$[$RANDOM % 10]は,$RANDOMを10で割った余りを返す式を評価してその値を返します。式を$[と]で囲むわけですが,$((と))で囲むのが普通のシェルのやり方ですが,bashの場合には$[と]も使えるのです。
他には`expr $RANDOM % 10`というやり方もありますね。

間違っていたらご指摘ください。>識者の方

Q繰り上がりのある足し算・繰下がりのある引き算のあるサイト

小学2年の息子は、算数の筆算が面倒で嫌いです。
筆算の仕方は、理解しているようです。
見ていると、足し算・引き算の計算がパッとできず、
それで、ドリルなどをするのが、イヤみたいです。

パソコンを触るのは、好きなので、足し算・引き算の問題があり、答えを入力するとピンポーン!と鳴ったりゲーム感覚で、楽しく算数が出来そうな、サイトがあったら、教えて下さい。

Aベストアンサー

サイトではないのですが、フリーのソフトでお望みのようなものはいろいろあると思います(参照URL)。

http://www.vector.co.jp/vpack/filearea/win95/edu/math/index.html
はいかがでしょうか?

参考URL:http://www.vector.co.jp/download/file/win95/edu/ff195208.html

QExcelの、マクロ終了時にExcel本体も閉じたい

Excelの、マクロ終了時にExcel本体も閉じたいのですが、
どのようなコマンドを埋め込んだらいいのでしょうか?
Application.Quit
では、Bookは閉じますが、Excel本体は残ってしまいます。
よろしくお願いいたします。

Aベストアンサー

>Bookは閉じますが、Excel本体は残ってしまいます。

ブックを閉じるコードの後に記述しているのであれば、そのコードは実行されない(実行コードが書かれたブックが閉じた時点でVBAが終了します。)のでエクセルが残存して仕舞います。
VBAの書かれたブックを閉じないで、Application.Quitだけを実行するようにしてください。

Qエクセルで計算について。足し算と%の合せ計算

よろしくおねがいします。

エクセルで計算について。足し算と%(パーセント)の合せ計算方法を教えてください。

下へドラッグして一瞬で計算したいです。

画像の仕入れ価格から利益までは足し算ですが、手数料は%の計算です。最後に合計を出します。

足し算の計算から%の計算は出来ますか? 

Aベストアンサー

C4に =ROUNDDOWN(SUM(C1:C3)*(B4/100),0)
C5に =SUM(C1:C4)

画像参照

QEXCELでのROW関数にて

データ事項  ファイル名
データ1   dat0001
データ2   dat0002
データ3   dat0003



データn   dat9999

エクセルにて、上記のファイル名"dat0001"に当たる部分にて、ROW関数を使って表示出来そうな事を聞きましたが、どうして良いのか検討も付かない状態です。
=ROW()だけでは、単純にその行数が値として表示されるだけなのですが、"dat"を付加して表示させたいのです。
何かアドバイスがあれば、お願いします。

Aベストアンサー

A1にでも
="dat"&TEXT(ROW(A1),"0000")
といれて、下方向に複写する。
そういうことでしょうか。


人気Q&Aランキング

おすすめ情報