# Probabilities at Mafia

1. Apr 19, 2010

### Gerenuk

Does anyone know the game
http://en.wikipedia.org/wiki/Mafia_(party_game)
?

I was trying to calculate probabilities with the assumptions that all players are dumb and slay a random person at day. Basically every night one of the good people dies and then a random one of the rest dies. So I wrote down (g=good, b=bad)
P(g,b)=(g-1)/(g+b-1)*P(g-2,b)+b/(g+b-1)*P(g-1,b-1)
P(g<=b)=0
P(b=0)=1
for the probability that the good people win.

Now I was surprised about the non-monotonicity. In my calculations it seems for example
P(g=4,b=1)>P(g=5,b=1)

Have I missed something out? Why does it depend on odd/even so much?
By this calculations werewolves should sometime be decreased if the number of players is increased?

2. Apr 20, 2010

### Martin Rattigan

I don't understand what happens if it arrives at 1 of each on a day slot (either would have to be very dumb indeed to vote to chop himself), but assuming they draw lots the lack of monotonicity is real.

E.g. it may be surprising that starting with a day slot the goodies do better to have one goody v one baddy than two goodies v one baddy but if you think about it it's right.

I append a javascript. (To run paste into a .htm file and drop it into a browser. Set the range values to lowest and highest numbers of players for the two sides.) The first number shown is the goodies and the 'n' or 'd' represents night or day start.

<script>

range=[1,9]

function p(g,b,n){
if(g<0||b<0||(b==0&&g==0))return NaN
if(b==0)return 1
if(b>g)return 0
if(n)return p(g-1,b)
else return (g*p(g-1,b,1)+b*p(g,b-1,1))/(b+g)
}

for(k=0;k<2;k++)
for(i=range[0];i<=range[1];i++)
for(j=i;j<=range[1];j++)
document.writeln('('+j+','+i+','+(k?'n':'d')+') '+p(j,i,k).toFixed(3)+'<br>')

</script>

Last edited: Apr 20, 2010