fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. #define NUM_TRIALS 100000 // 試行回数
  6. #define NUM_COINS 3 // コインの枚数
  7.  
  8. int main() {
  9. int histogram[NUM_COINS + 1] = {0}; // 表が出た枚数をカウントする配列
  10. int i, j, heads;
  11.  
  12. // 乱数シードの初期化
  13. srand(time(NULL));
  14.  
  15. // 試行を繰り返す
  16. for (i = 0; i < NUM_TRIALS; i++) {
  17. heads = 0; // 表のカウントを初期化
  18.  
  19. // 3枚のコインを投げる
  20. for (j = 0; j < NUM_COINS; j++) {
  21. if (rand() % 2 == 0) { // 0: 表, 1: 裏
  22. heads++;
  23. }
  24. }
  25.  
  26. // 表の枚数をヒストグラムに記録
  27. histogram[heads]++;
  28. }
  29.  
  30. // 結果を出力
  31. printf("表の枚数\t出現回数\n");
  32. for (i = 0; i <= NUM_COINS; 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
表の枚数	出現回数
0		12291
1		37688
2		37466
3		12555