47) Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Иг-роки ходят по очереди, первый ход делает Петя. За один ход игрок может а) добавить в одну из куч (по своему выбору) два камня или
б) увеличить количество камней в куче в два раза.
Победителем считается игрок, сделавший последний ход, т.е. первым получивший такую пози-цию, что в обеих кучах всего будет 75 камней или больше.
Задание 1. Для каждой из начальных позиций (10, 32), (11, 31) укажите, кто из игроков имеет выигрышную стратегию.
Задание 2. Для каждой из начальных позиций (10, 31), (11,30), (12,30) укажите, кто из игроков имеет выигрышную стратегию.
Задание 3. Для начальной позиции (10,29) укажите, кто из игроков имеет выигрышную страте-гию. Постройте дерево всех партий, возможных при указанной выигрышной стратегии.
С решением
PascalABC.NET 3.3.5, сборка 1640 от 17.03.2018
Внимание! Если программа не работает, обновите версию!
begin
var (a,b):=ReadInteger2('Введите границы интервала');
if a>b then Swap(a,b);
var m:=a mod 63;
if m>0 then a:=a+63-m
else if m<0 then a:=a-m;
var s:=Range(a,b,63);
Writeln('На интервале для чисел, кратных 7 и 9 одновременно:');
Writeln('Количество ',s.Count,', сумма ',s.Sum,', произведение ',
s.Aggregate(BigInteger(1),(p,q)->p*q))
end.
Пример
Введите границы интервала 613 2100
На интервале для чисел, кратных 7 и 9 одновременно:
Количество 24, сумма 32508, произведение 365675480699261550432828460140720056759879856012024400651039614959616000000
import random
class Passanger:
def __init__(self, name_pass, bagadge_value, bagadge_quantity):
"""Constructor"""
self.name_pass = name_pass
self.bagadge_value = bagadge_value
self.bagadge_quantity = bagadge_quantity
if __name__ == "__main__":
list_name_pass = ["Иванов","Иванова","Калдыбег","Мухутдинов","Карелов","Анакондов"]
list_bagadge_value = [25,1,4,14,29,35,2,4,25,6,25,3]
list_bagadge_quantity = [1,4,5,1,1,1,1,1,1,4]
list_passangers = []
random.shuffle(list_name_pass)
random.shuffle(list_bagadge_value)
random.shuffle(list_bagadge_quantity)
for i in range(len(list_name_pass)):
list_passangers.append(Passanger(list_name_pass[i],list_bagadge_value[i], list_bagadge_quantity[i]))
print("Подходят под условие:")
for i in list_passangers:
if (i.bagadge_value < 25 and i.bagadge_quantity == 1):
print(i.name_pass, i.bagadge_value, i.bagadge_quantity)
print("")
print("Пассажиры:")
for i in list_passangers:
print(i.name_pass, i.bagadge_value, i.bagadge_quantity)
Объяснение:
https://pastebin.com/hNT2m49y