fork(1) download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. #define SIDES 6 // サイコロの面の数
  6.  
  7. int saikoro(void) {
  8. return (rand() % SIDES) + 1; // 1から6の間の数を返す
  9. }
  10.  
  11. int main(void) {
  12. int i, roll1, roll2;
  13. int histogram[2 * SIDES + 1]; // 和は2から12までの範囲
  14.  
  15. // ヒストグラムの初期化
  16. for (i = 0; i <= 2 * SIDES; i++) {
  17. histogram[i] = 0;
  18. }
  19.  
  20. // 乱数生成器のシードを設定
  21. srand(time(NULL));
  22.  
  23. // サイコロを10万回振る
  24. for (i = 0; i < 100000; i++) {
  25. roll1 = saikoro(); // 1つ目のサイコロ
  26. roll2 = saikoro(); // 2つ目のサイコロ
  27. int sum = roll1 + roll2; // 和を計算
  28. histogram[sum]++; // 和の出現回数をカウント
  29. }
  30.  
  31. // 結果を表示
  32. printf("和\t頻度\n");
  33. for (i = 2; i <= 12; i++) {
  34. printf("%d\t%d\n", i, histogram[i]);
  35. }
  36.  
  37. return 0;
  38. }
  39.  
Success #stdin #stdout 0.01s 5284KB
stdin
Standard input is empty
stdout
和	頻度
2	2787
3	5671
4	8262
5	11183
6	14013
7	16702
8	13768
9	10918
10	8397
11	5600
12	2699