Setup
Unfortunately, you have found yourself in a difficult situation. You have injured your leg and are unable to walk. A number n of z...
For further actions, you may consider blocking this person and/or reporting abuse
Something like this should do the trick in Elixir. I'm just doubling the range and subtracting one on each iteration to avoid issues with floats and because working with integers is faster.
The 5% is throwing me off. There's no way to compute a certain live/die verdict when a probability. A singular zombie could be 2000 away and you get really unlucky and miss all shots.
Maybe you mean every 20th shot you miss? Or create an impure function that returns a different value depending on random chance from the probability? Or something else?
I believe it would mean something like that in Haskell (I'm not really confortable enough with Monad so there is room to improvements).
And I would use this on each shot. Meaning I have 5/100 chance of missing my target. That is what I understood but I may be wrong on this one.
This was the problem that I couldn't work out either - the tests become flaky and unreliable. Seems at odds with the rest of the scenario
Python, where of course the expected number of zombies killed is a maximum and sometimes the function says less were killed.
In Python
here's my solution in Python
C++
Python