в судебном деле фигурируют двадцать пронумерованных от 1 до 20 одинаковых по виду монет. суду известно, что 16 из них — фальшивые и весят по 2 грамма, а 4 — настоящие весом по 3 грамма. эксперт точно знает, что настоящие монеты — это монеты с номерами 17, 18, 19 и 20. за какое наименьшее количество взвешиваний на весах с двумя чашками без гирь он сможет указать суду на фальшивые монеты?
Ответы
Ответ:
def найти_фальшивые_монеты(монеты):
половина = len(монеты) // 2
первая_половина = монеты[:половина]
вторая_половина = монеты[половина:]
вес_первой_половины = sum(первая_половина)
вес_второй_половины = sum(вторая_половина)
if вес_первой_половины == вес_второй_половины:
return None # Все монеты весят одинаково, фальшивых нет
elif вес_первой_половины > вес_второй_половины:
return первая_половина
else:
return вторая_половина
# Создаем список монет, где 1 - фальшивая, 0 - настоящая
монеты = [2] * 16 + [3] * 4
# Вызываем функцию для поиска фальшивых монет
результат = найти_фальшивые_монеты(монеты)
if результат is None:
print("Все монеты настоящие.")
else:
print("Фальшивые монеты с номерами:", результат)