File "/usr/local/lib/python3.7/site-packages/django/utils/autoreload.py", line 225, in wrapper
Requirement already satisfied: Pillow in /usr/local/lib/python3.5/dist-packages (6.0.0)
Заметьте, вместо «python3-pillow» выбирается «python3-pil»
from itertools import product
cnt1 = [0] * 6 # число ранений при простом ходе
cnt2 = [0] * 6 # число ранений с переходом
minor = [0] * 7 # счетчик младших фишек атакующнго
rerun = [0] * 7 # счетчик случаев, когда переходить выгодно
for defence in product(range(1, 7), repeat=3):
defence = sorted(defence, reverse=True)
for attack in product(range(1, 7), repeat=5):
attack = sorted(attack, reverse=True)
minor[attack[4]] += 1
hit1 = sum(a > d for a, d in zip(attack, defence)) \
+ (attack[3] > 2) + (attack[4] > 2)
cnt1[hit1] += 1
# проверим, есть ли смысл переходить
hit2, hitsum = [0] * 6, 0
for d in range(1, 7):
reattack = attack[:]
reattack[4] = d
reattack.sort(reverse=True)
h = sum(a > d for a, d in zip(reattack, defence)) \
+ (reattack[3] > 2) + (reattack[4] > 2)
hit2[h] += 1
hitsum += h
if hitsum > hit1 * 6:
for i, h in enumerate(hit2):
cnt2[i] += h
rerun[attack[4]] += 1
else:
cnt2[hit1] += 6
print('количество ранений, доля без перехода, доля с переходом')
for hit, c1, c2 in zip(range(6), cnt1, cnt2):
print(f'{hit}: {c1 / sum(cnt1):6.4f} {c2 / sum(cnt2):6.4f}')
print('доля переходов в зависимости от младшего кубика')
for d in range(1, 7):
print(f'{d}: {rerun[d] / minor[d]:6.4f}')
количество ранений, доля без перехода, доля с переходом
0: 0.1234 0.0651
1: 0.1660 0.1095
2: 0.2149 0.1718
3: 0.2593 0.2460
4: 0.1764 0.2471
5: 0.0600 0.1606
доля переходов в зависимости от младшего кубика
1: 0.9085
2: 0.9712
3: 0.0431
4: 0.0076
5: 0.0000
6: 0.0000
from itertools import product
cnt = [0] * 6
for dices in product(range(1, 7), repeat=8):
attack = sorted(dices[:5])
defence = sorted(dices[5:])
cnt[sum(a > d for a, d in zip(attack, defence))
+ (attack[3] > 2) + (attack[4] > 2)] += 1
for hit, c in enumerate(cnt):
print(f'{hit}: {c / sum(cnt):6.4f}')
0: 0.0040
1: 0.0393
2: 0.6119
3: 0.1990
4: 0.1044
5: 0.0413
шанс ровно 1 ранения будет 16.60%, шанс ровно 4 ранений - 17.64%, шанс хотя бы 1 ранения - 87.66%
Вопрос с проверкой( является ли граф деревом) решен