#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int oneHit(int hp[]) {
int target
= rand() % 4; //choose a random target hp[target] -= 1; //reduces its HP by 1
if( hp[target] == 0) { //if the target dies
if (target == 0) { //if the target was Rag
return 0; //Rag has died
} else {
return 1; //Rag has survived
}
} else { //else if nobody dies
return oneHit(hp); //Bouncing Blade continues
}
}
int main()
{
int simulations = 100000000; //Number of simulations
int ragLives = 0; //Set the counter to 0
for(int i=0; i<simulations; i++) {
int startHp[4] = {1, 5, 8, 9}; //In order: Rag, Yogg, Ysera, Drake
ragLives += oneHit(startHp); //If Rag lives, add 1 to the counter
}
printf("Rag survived %d of %d simulations.\n", ragLives
, simulations
); double ragChance = (double)ragLives/simulations;
printf("%.6lf chance. Or 1 in %.1lf\n", ragChance
, 1/ragChance
); }
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHRpbWUuaD4KCmludCBvbmVIaXQoaW50IGhwW10pIHsKICAgaW50IHRhcmdldCA9IHJhbmQoKSAlIDQ7IC8vY2hvb3NlIGEgcmFuZG9tIHRhcmdldAogICBocFt0YXJnZXRdIC09IDE7ICAgICAgICAgLy9yZWR1Y2VzIGl0cyBIUCBieSAxCiAgIGlmKCBocFt0YXJnZXRdID09IDApIHsgICAvL2lmIHRoZSB0YXJnZXQgZGllcwogICAgICAgaWYgKHRhcmdldCA9PSAwKSB7ICAgLy9pZiB0aGUgdGFyZ2V0IHdhcyBSYWcKICAgICAgICAgICByZXR1cm4gMDsgICAgICAgIC8vUmFnIGhhcyBkaWVkCiAgICAgICB9IGVsc2UgewogICAgICAgICAgIHJldHVybiAxOyAgICAgICAgLy9SYWcgaGFzIHN1cnZpdmVkCiAgICAgICB9CiAgIH0gZWxzZSB7ICAgICAgICAgICAgICAgICAvL2Vsc2UgaWYgbm9ib2R5IGRpZXMKICAgICAgIHJldHVybiBvbmVIaXQoaHApOyAgIC8vQm91bmNpbmcgQmxhZGUgY29udGludWVzCiAgIH0KfQoKaW50IG1haW4oKQp7CiAgICBzcmFuZCh0aW1lKE5VTEwpKTsKICAgIGludCBzaW11bGF0aW9ucyA9IDEwMDAwMDAwMDsgICAgICAvL051bWJlciBvZiBzaW11bGF0aW9ucwogICAgaW50IHJhZ0xpdmVzID0gMDsgICAgICAgICAgICAgICAgICAvL1NldCB0aGUgY291bnRlciB0byAwCiAgICBmb3IoaW50IGk9MDsgaTxzaW11bGF0aW9uczsgaSsrKSB7CgkJaW50IHN0YXJ0SHBbNF0gPSB7MSwgNSwgOCwgOX07IC8vSW4gb3JkZXI6IFJhZywgWW9nZywgWXNlcmEsIERyYWtlCiAgICAgICAgcmFnTGl2ZXMgKz0gb25lSGl0KHN0YXJ0SHApOyAgIC8vSWYgUmFnIGxpdmVzLCBhZGQgMSB0byB0aGUgY291bnRlcgogICAgfQogICAgcHJpbnRmKCJSYWcgc3Vydml2ZWQgJWQgb2YgJWQgc2ltdWxhdGlvbnMuXG4iLCByYWdMaXZlcywgc2ltdWxhdGlvbnMpOwoJZG91YmxlIHJhZ0NoYW5jZSA9IChkb3VibGUpcmFnTGl2ZXMvc2ltdWxhdGlvbnM7CglwcmludGYoIiUuNmxmIGNoYW5jZS4gT3IgMSBpbiAlLjFsZlxuIiwgcmFnQ2hhbmNlLCAxL3JhZ0NoYW5jZSk7Cn0=