- ベストアンサー
統計とコンピュータの演習問題!
統計とコンピュータの演習問題で次のような実験を行って、問いに答えるという問題について教えてほしいです!! 「10個のさいころを同時に投げ、10個のうち偶数の個数の目が出たさいころがいくつあったかを記録する。これを100回繰り返す。」 (1)結果を度数分布表にまとめよ。 まず、この実験はパソコンでどうやってやるかと(1)の問題のやり方も教えてほしいです! お願いします!
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
EXCELもなければ、下記のjavascriptをUTF8でテキストとして保存、そのファイル名を 適当な名前.htmlとして、google chromeなどのブラウザにdrag & dropすればいいかと。 <html> <head> <title>10個のサイコロを100回</title> <script language="JavaScript"><!-- dosu=[0,0,0,0,0,0,0,0,0,0,0]; for(i=1;i<101;i++) { k=0; for(j=1;j<11;j++) { kazu=Math.floor(Math.random()*6+1); ama=kazu%2; if(ama == 0 ) { k++; } } dosu[k]++; } for(l=1;l<11;l++) { document.write(l + " : " + dosu[l]); document.write("<Br>"); } // --></script> </head> <body> </body> </html>
その他の回答 (6)
- USB99
- ベストアンサー率53% (2222/4131)
すみません、10個のサイコロでしたね。だとすると Sub goo() Dim kaisu(10) For i = 1 To 100 k = 0 For j = 1 To 10 kazu = Int(Rnd * 6 + 1) amari = kazu Mod 2 If amari = 0 Then k = k + 1 End If Next j kaisu(k) = kaisu(k) + 1 Next i For m = 1 To 10 Cells(m, 1) = kaisu(m) Next m End Sub
- USB99
- ベストアンサー率53% (2222/4131)
EXCELのVBAだと Sub goo() Dim kaisu(6) For i = 1 To 100 k = 0 For j = 1 To 6 kazu = Int(Rnd * 6 + 1)'乱数で1~6の整数を得る amari = kazu Mod 2'2でわって余りを得る If amari = 0 Then'偶数? k = k + 1 End If Next j kaisu(k) = kaisu(k) + 1 Next i For m = 1 To 6 Cells(m, 1) = kaisu(m) Next m End Sub 開発→visual basic→挿入→標準モジュール として、上記をコピーしてください。 あと、HSPなどもいいかも。
- asuncion
- ベストアンサー率33% (2127/6289)
何回もすみません。さっきのは、結果の例がおかしかったですね。 1回: 2 ** 2回: 7 ******* 3回:12 ************ 4回:16 **************** 5回:23 *********************** 6回:25 ************************* 7回: 8 ******** 8回: 6 ****** 9回: 1 * 10回: 0
お礼
ありがとうございます!! これってC言語使わないでってできますか? 何度もすいません><
- asuncion
- ベストアンサー率33% (2127/6289)
もっと視覚に訴えたければ、こうですかね。 #include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { int count[100], n[11] = { 0 }, i, j; srand((unsigned) time(NULL)); for (i = 0; i < 100; i++) { for (count[i] = j = 0; j < 10; j++) { if ((rand() % 6 + 1) % 2 == 0) { count[i]++; } } n[count[i]]++; } for (i = 1; i <= 10; i++) { printf("%2d回:%2d ", i, n[i]); for (j = 1; j <= n[i]; j++) { putchar('*'); } putchar('\n'); } return 0; } 結果の例 1回: 1 * 2回: 7 ******* 3回:16 **************** 4回:18 ****************** 5回:28 **************************** 6回:18 ****************** 7回: 7 ******* 8回: 2 ** 9回: 0 10回: 1 *
- asuncion
- ベストアンサー率33% (2127/6289)
度数分布表だったら、こっちですね。 #include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { int count[100], n[11] = { 0 }, i, j; srand((unsigned) time(NULL)); for (i = 0; i < 100; i++) { for (count[i] = j = 0; j < 10; j++) { if ((rand() % 6 + 1) % 2 == 0) { count[i]++; } } } for (i = 0; i < 100; i++) { n[count[i]]++; } for (i = 1; i <= 10; i++) { printf("%2d回:%2d\n", i, n[i]); } return 0; } 結果の例 1回: 1 2回: 7 3回:11 4回:17 5回:24 6回:28 7回:10 8回: 2 9回: 0 10回: 0 4回~6回のあたりに山が来ていることがわかると思います。 まあ、予想どおりですね。
- asuncion
- ベストアンサー率33% (2127/6289)
C言語が使えるのであれば、例えば次のようなコードを実行してみると なにがしかの結果が出るかもしれません。 #include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { int count[100], i, j; srand((unsigned) time(NULL)); for (i = 0; i < 100; i++) { for (count[i] = j = 0; j < 10; j++) { if ((rand() % 6 + 1) % 2 == 0) { count[i]++; } } } for (i = 0; i < 100; i++) { printf("%2d ", count[i]); while(count[i]--) { putchar('*'); } putchar('\n'); } return 0; } 結果の例 6 ****** 3 *** 3 *** 6 ****** 8 ******** 3 *** 4 **** 5 ***** 5 ***** 3 *** 5 ***** 6 ****** 7 ******* 3 *** 7 ******* 4 **** 5 ***** 5 ***** 7 ******* 5 ***** 4 **** 6 ****** 5 ***** 5 ***** 3 *** 6 ****** 3 *** 6 ****** 6 ****** 5 ***** 7 ******* 4 **** 5 ***** 5 ***** 4 **** 5 ***** 7 ******* 5 ***** 6 ****** 5 ***** 5 ***** 2 ** 8 ******** 6 ****** 5 ***** 7 ******* 2 ** 5 ***** 4 **** 2 ** 7 ******* 3 *** 5 ***** 4 **** 5 ***** 5 ***** 8 ******** 5 ***** 6 ****** 4 **** 5 ***** 7 ******* 6 ****** 3 *** 8 ******** 5 ***** 8 ******** 7 ******* 6 ****** 5 ***** 3 *** 3 *** 5 ***** 4 **** 4 **** 6 ****** 5 ***** 5 ***** 3 *** 4 **** 7 ******* 6 ****** 7 ******* 6 ****** 5 ***** 4 **** 4 **** 4 **** 4 **** 4 **** 5 ***** 4 **** 5 ***** 4 **** 6 ****** 6 ****** 4 **** 5 ***** 2 ** 7 *******
お礼
ありがとうございましたm(_ _)m 本当に助かりました!