fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. #define LOOP (1000000)
  5. int Gacha(double atari, int tenjo) {
  6. int i,iatari;
  7. iatari = RAND_MAX * (atari/100.0);
  8. for (i=0 ; i<tenjo ; i++) {
  9. if (rand()<=iatari) break;
  10. }
  11. return i;
  12. }
  13. int main(void) {
  14. int i;
  15. double ave;
  16. time_t t;
  17. time(&t); srand(t);
  18. printf("seed: %d , LOOP: %d\n",t,LOOP);
  19.  
  20. /* 0.6% , 天井90回 */
  21. for (i=0,ave=0.0 ; i<LOOP ; i++) {
  22. ave += (double)Gacha(0.6, 90);
  23. }
  24. ave /= (double)LOOP;
  25. printf("ave: %.3f , 1/ave*100: %.3f\n", ave, 1.0/ave*100.0);
  26.  
  27. /* 1.6% , 天井無し */
  28. for (i=0,ave=0.0 ; i<LOOP ; i++) {
  29. ave += (double)Gacha(1.6, 999999999);
  30. }
  31. ave /= (double)LOOP;
  32. printf("ave: %.3f , 1/ave*100: %.3f\n", ave, 1.0/ave*100.0);
  33. return 0;
  34. }
  35.  
Success #stdin #stdout 1.91s 4680KB
stdin
Standard input is empty
stdout
seed: 1616761300  ,  LOOP: 1000000
ave: 69.286  ,  1/ave*100: 1.443
ave: 61.634  ,  1/ave*100: 1.622