• 締切済み

乱数の発生について

0から99までの数値を1万個発生させ0~99の頻度を調べるプログラムを教えてください。 あと、できればそれを10セットデータをとってその平均を求めるプログラムも一緒にお願いします。

  • yota3
  • お礼率50% (2/4)

みんなの回答

回答No.4

まぁ 一応乱数の取得法だけ。 (int)(rand() / 32768.0 * MAX); MAXに乱数上限を設定します(但しゼロを基底とする) 100にすれば戻り値0~99でいけるでしょう。 あくまでC言語と仮定しての方法ですが(^^; あとはどの数値が出たかを カウントすれば答えになるでしょう。

yota3
質問者

お礼

ありがとうございました。参考になりました。 またいつか、よろしくお願いします。

  • shigatsu
  • ベストアンサー率26% (511/1924)
回答No.3

学校の課題だったら自分でやりましょうね。 もしそうでないなら、そう補足してください。 プログラマで飯食ってる人なら、この程度は(表現悪いですが)屁以下でしょう。

  • mnabe
  • ベストアンサー率33% (427/1283)
回答No.2

OSは? コンパイルは?  なにかの課題の様にも見えますが...。サンプルが欲しいだけなのでしょうか?  ヒントが欲しいのなら、いくらでも出しますが、答えはご自分で解決されるのが良いでしょう。  んでぇヒント  1万回のループを作成して、   その中で乱数を発生させる。   その後、乱数を表示する。   この時に、乱数を合計にたしておいて、乱数1セット発生毎に平均を求める関数を呼出し、平均を求める    平均を求めていたら、平均を表示する。    平均を表示したら、合計用の変数をクリアする。 以上かなぁ  乱数は、rand()関数あたりを調べれば出来ると思います。

yota3
質問者

お礼

ありがとうございます。どうにかできました。 また、よろしくお願いします。

回答No.1

どういう環境(OS)でどんな言語を使ってやりたいとかを 書いていただかなければお答えできません。

yota3
質問者

補足

遅くなってすいません。 WindowsでC言語を使ってやりたいです。お願いします。

関連するQ&A

  • 乱数発生プログラムについて教えて下さい。

    わからない問題があるのですが、わかる方がいれば教えていただきたいです。問題は ・乱数発生プログラムによって次のような個数のデータを発生させる。 500個から3000個までは500個刻み 3000個から10000個までは1000個刻み ・各データについてヒープソートについてソーティングを行いソーティングに要する時間を計測する。 ・各データについて3回のソーティングを行い、その平均時間を各データのソーティング時間とする。 大変困っているので誰か教えて下さい。お願いします!!

  • C++ による指数乱数発生プログラムを書きたいのですが。。。

    平均値(期待値)が、例えば30の指数乱数発生プログラムを、C++を使って書いてみたいのですが、どうやったらいいのかよく分かりません。いろいろなサイトを見て回ったのですが、これといったものが見付かりませんでした。 どなたか、大変申し訳ありませんが、ソースコードをご存知の方がいましたら教えていただけないでしょうか?

  • 乱数(組み合わせ)を発生させるには

    よろしく、おねがいします。  1から28までの数値を10人づつのグループに組み分けしたいのですが 関数であれこれやりましたが、ダメでした。 VBAなんでしょうか、VBAはまったく、知りません。 簡単なプログラム、エクセルのVBAに貼れるように 書いていただけませんか。 サルにも判るように、手順もいただければ とても助かります 厚かましいのですが お願いします。 

  • 発生乱数の偏りを無くしたい

    エクセルで=RAND()を用いてA1~A100のセルに100個乱数を発生させたときに(乱数は0~1の幅)、0~1の値を偏り無く発生させることは可能でしょうか?? 発生した100個の乱数をコピーして形式を“値”にして貼り付けてその100個の乱数の平均や中央値をみてみると0.5にはならないことから疑問に思いました・・・。 ご存知の方アドバイスよろしくお願いします。

  • ACCESS2000での乱数発生

    よろしく、お願いいたします。 以下の条件のVBAを教えてください。 現存する20000件のテーブルにあるデータに、新しいフィールドを作成し6桁のランダムな数値をすべてのデータに振っていきたいのですが、6桁の中に”0”が無いようにするには、どのようにしたらよいでしょうか。

  • 乱数発生ルーチンの使い方について

    数値計算において一様乱数を発生させるルーチンがいろいろあります。ソースが公開されているものやコンパイラが提供したりするものです。それらを利用する場合、乱数発生のシーズ(種)を与えてそれに応じて動作するというものが多いだろうと思います。そこで質問ですが、10000個の乱数を1回発生させる場合と100個の乱数を100回発生させる場合とで乱数の感じがかなり違います。いずれの場合も100×100の2次元データ(エクセルのシート状)として出力して作図したらその違いが簡単に分かります。この違いの原因はシーズの与え方が1回と100回という違いだろうと思います。100回のシーズの与え方にパターンが出来てしまうからだと思われます。例えば時間を使ってシーズを与えなおすことも考えられますが、今時のPCだとあっという間なのでシーズが同じだから、同じ乱数が100個できてしまいます。乱数を繰り返し発生させるときにその繰り返しの中でパターン化された乱数にならないように発生させる方法がないでしょうか。シーズが要らない乱数生成ルーチンとかですが。あるいはシーズをランダムに取得する方法が含まれたルーチン(シーズがないように見える)などです。あるいは本当にないものなど。メルセンヌツイスターはどうなのでしょうか。一応、フォートランでの利用を考えていますが、言語依存の問題ではないかもと思いますが。 よろしくお願いします。

  • 乱数を発生させるプログラムを教えてください。

    タイトルのままなのですが、1から100までの乱数を発生させるプログラムを知りたいです。 乱数をxとおくと、xの値は、0<x<1の範囲内でお願いします。 C言語で、rand関数を用いて、どうかお願いします。

  • 乱数の発生確率(c++)

    0,1の2値の乱数を発生させるとき、1の発生確率を例えば20%にするにはどのようにすればよいのでしょうか。 発生乱数を除算して余りを求めて・・・・の方法など試したのですが、うまいこといきませんでした。(プログラムが動かないのではなく結果が) 私の確率の認識が間違っているのかもしれませんが、この場合、1000個発生させた場合、300近く1が出れば良いということですよね。

  • 規則に従った乱数

    一様乱数を発生させるプログラムはネット上でも入手できます。ある種の確率密度分布に従った乱数を発生させるにはどうしたらいいでしょうか。 例えば0から1の乱数ですが、平均が0.5で分散が0.2のガウス分布に従った乱数を発生させるとしたら0.5に近いところの値が多く出て、0.9のあたりはあまり出ないということになります。そういう乱数です。 そういうものを乱数というのかどうかわかりませんが。 しかし、物理現象は何らかの分布に従う乱数のようなものと考えることができるのではないでしょうか。 よろしくお願いします。

  • 乱数発生

    #include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) {int y, m, l; srand( (unsigned)time( NULL ) ); y=rand() % 2500 + 1600; m=rand() % 12 + 1; l=rand() % 29 + 1; printf("西暦%d年%d月%d日",y,m,l); return(0); }今回は乱数発生でランダムにだされた西暦年月日をつくりましたが、y=rand() % 2500 + 1600; というのがありこれはyという乱数が2500以下1600以上という意味なのですがなぜかプログラムを実行しても3000いくつとか4000いくつなんてのもでてきます。m=rand() % 12 + 1;はちゃんと12以下1以上でできるのですがなぜですか?本当にわかりません。是非だれか教えてください。