Я пытаюсь воссоздать однопользовательскую версию игры в кости Dudo. Самая важная информация состоит в том, что шесть игроков имеют шесть скрытых кубиков, а точка игры состоит в том, чтобы угадать, сколько из определенного типа умирают на столе в целом (например, если есть десять 4 или двенадцать 5 и т. Д.).Python: Биномиальное распространение не работает, если оно задано как переменная
Чтобы сделать некоторый ИИ, я использую биномиальные дистрибутивы, где компьютер догадывается о вероятности того, что существует определенное число определенного типа умирающего, исходя из того, сколько из этого вида умирает уже в руке. Я сохранил это уравнение в переменной случайно:
chance = ((1/3) ** (i - player_dice_type[turn][active_type])) * ((2/3) ** (total_count - i - player_count[turn] + player_dice_type[turn][active_type]))
i
это число такого рода фильеры (например, шесть 5s, или семь 5s, или восемь 5s и т.д.). У меня есть список того, сколько из каждого типа игрока имеет (player_dice_type
), и я могу выбрать конкретный штамп для определенного игрока, подмножество turn
и active_type
. 1/3 имеет отношение к правилам игры (обычно это будет 1/6 для кубиков), но это никак не связано с моей проблемой.
Когда я вызываю шанс, он ТОЛЬКО дает мне значение, если player_dice_type[turn][active_type] = 0
и i = 6
, поэтому вероятность того, что 6 этого штампа находится на столе, когда компьютер имеет 0.
Я могу позвонить i
и player_dice_type[turn][active_type]
и посмотреть, что они НЕ равны 6 или 0. Дело в том, что если я скопирую и вставляю уравнение, он отлично работает. Он только по умолчанию имеет значение 6 и 0, когда я вызываю вероятность.
Я также попытался сделать функцию chancefun(i)
, которая возвращает исходное уравнение, а затем говорит chance = chancefun(i)
. Я могу изменить i в окружающей среде на все, что захочу, и chancefun(i)
будет реагировать соответственно, но еще раз, переменная chance
этого не делает.
Я включил определение области как тег только потому, что я думаю, что это может быть связано каким-то образом, но я не могу думать о том, как. Я также попытался изменить имя переменной с chance
на кучу других вещей и до сих пор не повезло.
Вы правы, спасибо. Это на самом деле застопорило меня какое-то время, и просто написать это заставило меня понять проблему: / –