юный математик Матвей интересуется теорие вероятностей, и по этой причине у него всегда есть собой несколько стандартных шестигранны игральных кубиков. Стандартный шестигранны пары гране кубик имеет три противолежащих которые размечены таким образом, что напроти грани с числом 1 находится грань с числом напротив грани с числом 2 грань с числом 5 напротив грани с числом 3 - грань с числом 4. - - Анализируя различные игры с шестигранным кубиками, Матвей придумал новую игру. В эту игр играют два игрока, и проходит она следующи образом: первый игрок бросает один или нескольк стандартных кубиков (количество кубиков определяет сам). 0 После этого первому игрок начисляется количество очков, равное сумме чисе оказавшихся на верхних гранях всех кубиков, второму игроку сумма чисел, оказавшихся н нижних гранях этих кубиков. Побеждает тот, кт набрал больше очков. - Например, если был брошен один кубик, и н верхней его грани выпало число два, то первы игрок получает два очка, а второй пять. В сво очередь, если было брошено два кубика и на и верхних гранях выпало по единице, то первый игро получает также два очка, а второй игрок двенадцать очков, так как на нижних гранях эти кубиков оказались шестерки. Матвей рассказал об этой игре своему друг юному информатику Фоме, и они начали играть неë через Интернет. Поскольку Фома не види результат броска и не знает, сколько кубиков бросае Матвей как первый игрок, то о набранных кажды игроком очках он узнает только от Матвея. Чтоб проверить достоверность этой информации, фом решил узнать, какое минимальное и максимальнс количество ОЧКОВ мог получить он, как второ игрок, если известно, сколько очков набрал Матвей. Требуется написать программу, которая II количеству очков, набранных первым игроком посл броска, определяет наименьшее и наибольше количество очков, которые может получить второ игрок за этот бросок. помогите составить программу на python дам 50 бал
Answers & Comments
Ответ:
score1 = int(input("Введите количество очков, набранных первым игроком: "))
min_score2 = 0
max_score2 = 0
while score1 > 0:
if score1 >= 21:
min_score2 += 6
max_score2 += 36
score1 -= 21
elif score1 >= 17:
min_score2 += 5
max_score2 += 30
score1 -= 17
elif score1 >= 14:
min_score2 += 4
max_score2 += 24
score1 -= 14
elif score1 >= 12:
min_score2 += 3
max_score2 += 18
score1 -= 12
elif score1 >= 11:
min_score2 += 2
max_score2 += 12
score1 -= 11
elif score1 >= 7:
min_score2 += 1
max_score2 += 6
score1 -= 7
else:
print("Невозможное количество очков для первого игрока")
break
print("Минимальное количество очков для второго игрока:", min_score2)
print("Максимальное количество очков для второго игрока:", max_score2)
Объяснение:
Один из возможных вариантов кода:
# Вводим количество очков, набранных первым игроком
score1 = int(input("Введите количество очков, набранных первым игроком: "))
# Инициализируем минимальное и максимальное количество очков для второго игрока
min_score2 = 0
max_score2 = 0
# Пока есть очки у первого игрока, проверяем, сколько кубиков он мог бросить
while score1 > 0:
# Если очков больше или равно 21, то он мог бросить 6 кубиков
if score1 >= 21:
# Добавляем к минимальному количеству очков для второго игрока 6, так как на нижних гранях кубиков могут быть единицы
min_score2 += 6
# Добавляем к максимальному количеству очков для второго игрока 36, так как на нижних гранях кубиков могут быть шестерки
max_score2 += 36
# Вычитаем из очков первого игрока 21, так как на верхних гранях кубиков могут быть единицы
score1 -= 21
# Если очков больше или равно 17, то он мог бросить 5 кубиков
elif score1 >= 17:
# Добавляем к минимальному количеству очков для второго игрока 5, так как на нижних гранях кубиков могут быть единицы
min_score2 += 5
# Добавляем к максимальному количеству очков для второго игрока 30, так как на нижних гранях кубиков могут быть шестерки
max_score2 += 30
# Вычитаем из очков первого игрока 17, так как на верхних гранях кубиков могут быть единицы
score1 -= 17
# Если очков больше или равно 14, то он мог бросить 4 кубика
elif score1 >= 14:
# Добавляем к минимальному количеству очков для второго игрока 4, так как на нижних гранях кубиков могут быть единицы
min_score2 += 4
# Добавляем к максимальному количеству очков для второго игрока 24, так как на нижних гранях кубиков могут быть шестерки
max_score2 += 24
# Вычитаем из очков первого игрока 14, так как на верхних гранях кубиков могут быть единицы
score1 -= 14
# Если очков больше или равно 12, то он мог бросить 3 кубика
elif score1 >= 12:
# Добавляем к минимальному количеству очков для второго игрока 3, так как на нижних гранях кубиков могут быть единицы
min_score2 += 3
# Добавляем к максимальному количеству очков для второго игрока 18, так как на нижних гранях кубиков могут быть шестерки
max_score2 += 18
# Вычитаем из очков первого игрока 12, так как на верхних гранях кубиков могут быть единицы
score1 -= 12
# Если очков больше или равно 11, то он мог бросить 2 кубика
elif score1 >= 11:
# Добавляем к минимальному количеству очков для второго игрока 2, так как на нижних гранях кубиков могут быть единицы
min_score2 += 2
# Добавляем к максимальному количеству очков для второго игрока 12, так как на нижних гранях кубиков могут быть шестерки
max_score2 += 12
# Вычитаем из очков первого игрока 11, так как на верхних гранях кубиков могут быть единицы
score1 -= 11
# Если очков больше или равно 7, то он мог бросить 1 кубик
elif score1 >= 7:
# Добавляем к минимальному количеству очков для второго игрока 1, так как на нижней грани кубика может быть единица
min_score2 += 1
# Добавляем к максимальному количеству очков для второго игрока 6, так как на нижней грани кубика может быть шестерка
max_score2 += 6
# Вычитаем из очков первого игрока 7, так как на верхней грани кубика может быть единица
score1 -= 7
# В противном случае, он не мог бросить ни одного кубика, и это ошибка
else:
print("Невозможное количество очков для первого игрока")
break
# Выводим минимальное и максимальное количество очков для второго игрока
print("Минимальное количество очков для второго игрока:", min_score2)
print("Максимальное количество очков для второго игрока:", max_score2)