Игра в русскую рулетку. В пистолет вставлено 5 патронов: 4 холостых и 1 боевой. Если вы будете стрелять в себя, то на следующем ходе можете снова сделать выбор, в кого стрелять, но если стреляете в соперника, и не убиваете его, то ход переходит к нему. Для соперника действуют такие же правила.
Так вот, какая вероятность выиграть, в кого стрелять?
Результат:
В себя — 47 % выиграть
В соперника — 52 % выиграть
import itertools
x = list(map(list, set(itertools.permutations([0, 1, 0, 1, 1]))))
for gg in range(2):
победа=0
поражение=0
z=set()
for _ in x:
for num, i in enumerate(_):
if num==0:
if i==1:
if gg==0:
поражение+=1
elif gg==1:
победа+=1
else:
if gg==0: z.add((x.index(_),"всебя"))
elif gg==1: z.add((x.index(_),"внего"))
else:
for k in z.copy():
z.remove(k)
if k[-1]=='всебя':
if i==1:
if num==_.count(0):
победа+=1
else:
победа+=1
поражение+=1
else:
xc=list(k)
z.add(tuple(xc+["внего"]))
z.add(tuple(xc+["всебя"]))
elif k[-1]=='внего':
if i==1:
if num==_.count(0):
поражение+=1
else:
победа+=1
поражение+=1
else:
xc=list(k)
z.add(tuple(xc+["внего"]))
z.add(tuple(xc+["всебя"]))
if gg==0:
print("В себя -", str(int(победа/(победа+поражение)*100))+"% выиграть")
else:
print("В соперника -", str(int(победа/(победа+поражение)*100))+"% выиграть")