fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. #define NUM_TRIALS 100000 // 試行回数
  6.  
  7. int main() {
  8. int histogram[4] = {0, 0, 0, 0}; // 表の枚数ごとのカウント (0枚, 1枚, 2枚, 3枚)
  9. int i, j, heads;
  10.  
  11. // 乱数の初期化
  12. srand((unsigned int)time(NULL));
  13.  
  14. // 試行を繰り返す
  15. for (i = 0; i < NUM_TRIALS; i++) {
  16. heads = 0;
  17.  
  18. // コインを3回投げる
  19. for (j = 0; j < 3; j++) {
  20. if (rand() % 2 == 0) { // 0なら表 (1/2の確率)
  21. heads++;
  22. }
  23. }
  24.  
  25. // 表の枚数をヒストグラムに記録
  26. histogram[heads]++;
  27. }
  28.  
  29. // 結果を表示
  30. printf("コインを3枚投げた試行 %d 回の結果:\n", NUM_TRIALS);
  31. printf("表の枚数\t頻度\n");
  32. for (i = 0; i < 4; i++) {
  33. printf("%d\t\t%d\n", i, histogram[i]);
  34. }
  35.  
  36. return 0;
  37. }
  38.  
Success #stdin #stdout 0.01s 5276KB
stdin
Standard input is empty
stdout
コインを3枚投げた試行 100000 回の結果:
表の枚数	頻度
0		12531
1		37454
2		37409
3		12606