#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define LOOP (1000000)
int Gacha(double atari, int tenjo) {
int i,iatari;
iatari = RAND_MAX * (atari/100.0);
for (i=0 ; i<tenjo ; i++) {
if (rand()<=iatari
) break; }
return i;
}
int main(void) {
int i;
double ave;
time_t t;
printf("seed: %d , LOOP: %d\n",t
,LOOP
);
/* 0.6% , 天井90回 */
for (i=0,ave=0.0 ; i<LOOP ; i++) {
ave += (double)Gacha(0.6, 90);
}
ave /= (double)LOOP;
printf("ave: %.3f , 1/ave*100: %.3f\n", ave
, 1.0/ave
*100.0);
/* 1.6% , 天井無し */
for (i=0,ave=0.0 ; i<LOOP ; i++) {
ave += (double)Gacha(1.6, 999999999);
}
ave /= (double)LOOP;
printf("ave: %.3f , 1/ave*100: %.3f\n", ave
, 1.0/ave
*100.0); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHRpbWUuaD4KI2RlZmluZSBMT09QCSgxMDAwMDAwKQppbnQgR2FjaGEoZG91YmxlIGF0YXJpLCBpbnQgdGVuam8pIHsKCWludAlpLGlhdGFyaTsKCWlhdGFyaSA9IFJBTkRfTUFYICogKGF0YXJpLzEwMC4wKTsKCWZvciAoaT0wIDsgaTx0ZW5qbyA7IGkrKykgewoJCWlmIChyYW5kKCk8PWlhdGFyaSkJYnJlYWs7Cgl9CglyZXR1cm4gaTsKfQppbnQgbWFpbih2b2lkKSB7CglpbnQgaTsKCWRvdWJsZSBhdmU7Cgl0aW1lX3QgdDsKCXRpbWUoJnQpOyBzcmFuZCh0KTsKCXByaW50Zigic2VlZDogJWQgICwgIExPT1A6ICVkXG4iLHQsTE9PUCk7CgoJLyogMC42JSAsIOWkqeS6lTkw5ZueICovCglmb3IgKGk9MCxhdmU9MC4wIDsgaTxMT09QIDsgaSsrKSB7CgkJYXZlICs9IChkb3VibGUpR2FjaGEoMC42LCA5MCk7Cgl9CglhdmUgLz0gKGRvdWJsZSlMT09QOwoJcHJpbnRmKCJhdmU6ICUuM2YgICwgIDEvYXZlKjEwMDogJS4zZlxuIiwgYXZlLCAxLjAvYXZlKjEwMC4wKTsKCgkvKiAxLjYlICwg5aSp5LqV54Sh44GXICovCglmb3IgKGk9MCxhdmU9MC4wIDsgaTxMT09QIDsgaSsrKSB7CgkJYXZlICs9IChkb3VibGUpR2FjaGEoMS42LCA5OTk5OTk5OTkpOwoJfQoJYXZlIC89IChkb3VibGUpTE9PUDsKCXByaW50ZigiYXZlOiAlLjNmICAsICAxL2F2ZSoxMDA6ICUuM2ZcbiIsIGF2ZSwgMS4wL2F2ZSoxMDAuMCk7CglyZXR1cm4gMDsKfQo=