• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ExcelのRandbetween関数の精度)

ExcelのRandbetween関数の精度

Wendy02の回答

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 本来、RAND 関数で、自然乱数ではなく擬似乱数(pseudo-random numbers)ですが、日本語サイトの情報では、あまり正確な情報が出ていないようです。 そこで、RANDOM について、旧バージョンと比較して、Excel 2003/2007 (2003には、バグが残っています)が、一応、100万回以上を試さない限りは、乱数は保証できると言っています。 Excel 2007 と Excel 2003 の RAND 関数について http://support.microsoft.com/kb/828795/ja いろいろ探してみましたが、以下の論文が一番、話の内容が納得できるようです。 英文資料です。 http://www.daheiser.info/excel/frontpage.html XVIII. Random Number Generation (update, 12/10/08)  pdf 資料(私は、30P の内、半分程度しか読んでいません。) そこに、RANDBETWEEN の説明も書かれていますが、RAND()関数と独立して検査は出来ないけれども、特に問題も見出せなかったとされています。 >とはいえ、これほどのデータだとグラフを書くのも不可能(エクセルのグラフ機能は使用できるデータの個数が限られています)。 それは、大雑把に見るのでしたら、散布図の形を見れば良いのではないでしょうか。それで、X,Y で期待する四角形(30万,30万)で概ね塗りつぶせれば、偏りが少ないだろうし、形やムラが出来れば、偏りがあるのだと判定できるはずです。

forbiddendoll
質問者

お礼

配布リンク先のPDFについては後ほど見るとして、Microsoftの見解は一つの閾値として使えそうです。 うちで使っているのはOffice2000なので、精度の悪い(とされる)Excelのようです。ただ、それでも100万個以上・・・ということですから。 まぁよほどの事がない限り問題にはならないでしょうね。 問題になりえる使い方も、イメージがわきました。検証云々は別途考えるとして、目的の一つである「どういう時には利用すべきでないか」が明確になり、スッキリしました。

関連するQ&A

  • エクセル 関数について

    エクセルの型番と、個数が入力されているデータから、 入力されている型番の一覧リストと、各型番の個数を求めるような 関数が知りたいです。 お願いいたします。

  • ExcelのRAND関数

    ExcelのRAND関数で、0から1の間の乱数を発生させることができます。 たとえば、10万行のデータの各行に一度にRAND関数で乱数を発生させた場合(1件目に=RAND()を入力してから下方向コピーする。)、同じ値が発生することはありうるのでしょうか。 データ量が多くなるほど小数点以下の桁数が増えていくので、そのようなことは起きないようになっているのではないかと思いますが、実際はどうなのでしょうか? 

  • エクセルで1次関数

    わかるかた、教えて下さい。 エクセルで1次関数(例えば、y=2x+3)のような関数のグラフを作りたいのですが、どうゆうふうに入力すればいいのですか?

  • エクセルに関する質問

    エクセルに関する質問なんですが 統計数字データをグラフに変換して、統計データによるグラフを作成する際に 統計データの始点と終点を同じにして、重ねて比べられるようなグラフにしたいのですが 統計データの量が、比較したいAとBでは異なるため、 始点終点を同じにして、重ねて比べることができません。 何か関数とかその他の方法で、 違うデータ量のものを重ねて比較する方法はないでしょうか?

  • エクセル2003のグラフ作成について

    一度質問しましたが、私の質問が曖昧だったのでもう一度記入します。 エクセルで毎日記入しているデーターがあります。 日付を記入し個数を書いています。 日付  A  B 4/1  6  7 4/1  9  4 5月、6月・・・と続き どんどん追加されるデーターです。 このデーターをベースに、グラフを作りたいのです。 目的は、日付毎の合計を出し、月々でグラフ化したいらしいです。 縦の棒グラフがいいと思っています。 左に月で、下が個数。 このデーターを蓄積して、どの曜日が多いか、どの月が多いかを グラフをみて、統計を出したいそうです。 ピボットテーブルは却下されてしまいました。 これからも毎日入力するデーターですが、 入力すると、自動的にグラフが出来るようにしたいらしいのです。 そんなことってできるのでしょうか? ピボットは切り貼りするのが面倒らしく、 手間をかけずにデーターを入力すれば、 別シートにグラフができている……という感じです。 初心者ですが、アドバイスお願いします。

  • エクセルでグラフから出た関数Xにたいして計算したい

     エクセルでデータを入力してグラフをつくり、そこからでた関数から グラフにxのパラメーターを入力することでyの値を自動計算したいのですがどうやればよろしいのでしょうか。 よろしくおねがいします。 関数式例)  y=13.524(-0.0038X)  ()は指数

  • メルセンヌツイスターによる乱数の使い方

    メルセンヌツイスターによる乱数を生成したいのですが、下記コードにすると、mt_rand関数を呼ぶたびにシードが初期化され他乱数が生成されます。 やりたいことは、main関数で一度シード101で初期化した後は、mt_rand関数内では、初期化することなく継続した乱数を生成したいのです。 そのためa_mt_rand関数のようにすると、mtが定義されていないとなるエラーとなります。 namespaceの問題と思うのですが、色々試してみましたが、できませんでした。 どのようにすればできるでしょうか。 vc++11、windows11 使用 参考サイト C++ 乱数ライブラリ std::random の使い方 リンクはうまく貼れませんでした。 #pragma hdrstop #include <iostream> #include <stdio.h> #include <random> using namespace std; void mt_rand(void); int main(int argc, char *argv[]) { int ptr; std::mt19937 mt(101); // メルセンヌツイスターの32ビット版、引数は初期シード std::uniform_int_distribution <> rand100(0, 100); // [0, 99] 範囲の一様乱数 ptr = rand100(mt); printf("ptr=%d\n",ptr); mt_rand(); } void mt_rand(void) { int ptr=0; std::mt19937 mt(101); // メルセンヌツイスターの32ビット版、引数は初期シード std::uniform_int_distribution <> rand100(0, 100); // [0, 99] 範囲の一様乱数 ptr = rand100(mt); printf("%d\n",ptr); } void a_mt_rand(void) { int ptr=0; ptr = rand100(mt); printf("%d\n",ptr); }

  • Excelの関数について

    仕事でExcelを使った資料を作成しています。 例 1.りんご 20個 2.ばなな 50個 3.すいか 5個 このように、品目に個数を入力していく資料を作成しているのですが、たとえば入力した個数が20個以上なら入力した数値の2倍を返し、20個以下なら入力した数値の半分を返す、といった関数は作成できるものでしょうか? どうぞ知恵をお貸し下さい。

  • エクセルで関数を使い注文品別の一覧表を作るには?

    まず、元になるデータとして、縦軸1~80に発注者氏名、横軸A~Jに注文品を記した表があり、発注した個数を入力してあります。縦軸最後にはSUM関数で注文品別の合計発注数が出ています。 この表を基に、注文品別の発注者がわかる一覧表を作成したいのですが、ご教授お願いします。 VLOOKUP関数等考えてみましたが、うまくいきません。(個数を入力したセルから氏名をひっぱってくる方法が不明です)エクセル上級者の皆様、宜しくお願い致します。(アクセスがないのでエクセルでお願いします)

  • エクセルで関数を使い注文品別の一覧表を作るには?

    まず、元になるデータとして、縦軸1~80に発注者氏名、横軸A~Jに注文品を記した表があり、発注した個数を入力してあります。縦軸最後にはSUM関数で注文品別の合計発注数が出ています。 この表を基に、注文品別の発注者がわかる一覧表を作成したいのですが、ご教授お願いします。 VLOOKUP関数等考えてみましたが、うまくいきません。(個数を入力したセルから氏名をひっぱってくる方法が不明です)エクセル上級者の皆様、宜しくお願い致します。(アクセスがないのでエクセルでお願いします)