Предмет: Информатика, автор: backa7898

в судебном деле фигурируют двадцать пронумерованных от 1 до 20 одинаковых по виду монет. суду известно, что 16 из них — фальшивые и весят по 2 грамма, а 4 — настоящие весом по 3 грамма. эксперт точно знает, что настоящие монеты — это монеты с номерами 17, 18, 19 и 20. за какое наименьшее количество взвешиваний на весах с двумя чашками без гирь он сможет указать суду на фальшивые монеты?

Ответы

Автор ответа: tmilegov
0

Ответ:

def найти_фальшивые_монеты(монеты):

   половина = len(монеты) // 2

   первая_половина = монеты[:половина]

   вторая_половина = монеты[половина:]

   вес_первой_половины = sum(первая_половина)

   вес_второй_половины = sum(вторая_половина)

   if вес_первой_половины == вес_второй_половины:

       return None  # Все монеты весят одинаково, фальшивых нет

   elif вес_первой_половины > вес_второй_половины:

       return первая_половина

   else:

       return вторая_половина

# Создаем список монет, где 1 - фальшивая, 0 - настоящая

монеты = [2] * 16 + [3] * 4

# Вызываем функцию для поиска фальшивых монет

результат = найти_фальшивые_монеты(монеты)

if результат is None:

   print("Все монеты настоящие.")

else:

   print("Фальшивые монеты с номерами:", результат)

Похожие вопросы
Предмет: Геометрия, автор: sonyakovalenko21d