Найти тему
Репетитор IT mentor

Школьная задача по алгебре, которую вы не решите

Оглавление

Привет друзья! Давно не было статей на канале. Но это из-за плохих алгоритмов Дзена, который последние полгода просто урезал все показы статей. Пропадает желание писать, когда нет никакой активности. Если вам нравится контент, то оставляйте комментарии, давайте обратную связь.

Пару дней назад ко мне обратилась знакомая (преподаватель биофизики) с математической задачкой. Не удавалось подобрать корректное решение. Задача показалась мне очень интересной для школьного уровня. Поэтому сегодня мы её подробно разберем. Берите чай, черновик и присоединяйтесь 😉

А пока попрошу подписаться на мой канал в telegram IT mentor . Краткие заметки и наблюдения по физике, математике, программированию, железу и технике 💡

Задача

Расставить знаки «+» и «-» вместо вопросов так, чтобы выражение 7 ? 7 ? 7 ? 7 ? 7 ? 7 = 7 было верным.

Решение:

1. Сначала рассмотрим выражение S = 7 op 7 op 7 op 7 op 7 op 7 , где op - это оператор, который может принимать значения «+» или «-». Будем варьировать операторы и найдем максимальное, минимальное и минимальное по модулю значение суммы:

-2

2. Что будет, если мы изменим знак у одной семерки? Как тогда меняется сумма, допустим минимальная по модулю?

-3

Теперь мы нашли минимальный шаг и все уникальные значения суммы. Получается, что у исходной задачи решения нет.

Верим ли мы в аналитическое решение?

Допустим, не верим. Или хотим проверить. Давайте тогда прибегнем к помощи компьютера. Попробуем замоделировать перебор всех решений (метод грубой силы, брутфорс).

Мы можем создать список всех вариантов или даже обернуть всё в множество (set), чтобы вывести на экран только уникальные вариант.

Отдельный интерес может представлять функция, которая получает список операторов (например: ['+','+','+','+','+','+'] ) и число (например: number = 7) и выводит на экран результат выражения: +7+7+7+7+7+7 = ... :

-4

Это не единственный способ расчета такого выражение. Например, можно использовать функцию eval(). Тогда получится так:

-5

Посмотрим на варианты реализации такого перебора в целом:

Реализация метода перебора на языке Python

https://pastebin.com/XiCDHcGw
https://pastebin.com/XiCDHcGw

Численное решение (brute force) дает такие же результаты. Что доказывает, что решение исходной задачи нет из-за некорректности задачи.

Есть и альтернативное решение на языке Object Pascal (Delphi)

Документация по Pascal: https://pascalabc.net/
Документация по Pascal: https://pascalabc.net/

Вот такая получилась необычная задачка. Вроде за начальные классы, а вроде и повод повторить информатику и программирование. Как вам задача? Сразу догадались до подвоха? 😊

Понравилась статья? Поставьте лайк, подпишитесь на канал, напишите комментарий! Вам не сложно, а мне очень приятно :)

Если Вам нужен репетитор по физике, математике или информатике/программированию, Вы можете написать мне или в мою группу Репетитор IT mentor в VK
Лучший канал для физиков, математиков и программистов
Репетитор IT mentor в telegram