Решение уравнения с целочисленным делением без перебора / Хабр
Недавно на Тостере прозвучал вопрос, который не на шутку меня задел. Корнями он уходит в задачу, которую я приведу здесь в немного другой интерпретации:
Сдали как-то программисты проект в срок и получили премии. На радостях, прямо в ПН скинулись и на все деньги купили пива. В тот же день всё выпили, а во ВТ решили продолжить, но денег больше не осталось. Тогда они сдали бутылки, добавили вчерашнюю сдачу и снова затарились на все, как и вчера. То же проделали в СР и ЧТ. А в ПТ денег оказалось ровно на одну бутылку. Задумались — вспомнили цену одной бутылки, почём у них принимали тару (цены были без копеек), а сколько было денег изначально, никто назвать не смог. Проект был масштабный, премии большие — так что перебором не стоит. Каким же был минимальный бюджет в ПН, чтобы события сложились именно таким образом?
Рассуждая над ней следующим образом
поскольку ребята каждый день покупали столько пива, сколько позволял им текущий бюджет (B, budget) – бюджет следующего дня (NB, next_day_budget) формировался из выручки от возврата тары и вчерашней сдачи.
Две переменные сложнее одной, потому я перешёл к учёту ежедневного уменьшения бюджета (BL, budget_loss). Причём , где P, price – стоимость одной бутылки пива; R, return – цена тары при возврате, а N – количество приобретённых за день бутылок, такое, что . Тогда, можно заключить следующее:
я пришёл к уравнению, которое в абстрактном виде выгядит так (1):
Пытаясь найти подход без перебора к решению такого рода уравнений я потратил не один час, но в итоге нашёл поистине чудесное решение
😉
Без иллюзий на счёт первенства в этом вопросе, хочу лишь поделиться удовольствием, полученным в процессе. Если кто знает альтернативный метод или название этого, просветите меня; подобных мне призываю к обсуждению, а нетерпеливых – приглашаю под кат.
Рассмотрим полученное уравнение в таком виде (2):
поскольку правая часть может принимать только целочисленные значения, всё выражение имеет смысл лишь тогда, когда в левой части числитель кратен знаменателю.
Из этого очевидно, что x мог бы иметь значения начиная с величины с и дальше с шагом a.
Тогда я рассмотрел уравнение (1) в виде двух функций и . При каком аргументе они пересекутся, таким и будет решение. Для примера я выбрал небольшие значения параметров таким образом, чтобы отобразить картину, как можно лучше. Итак, пусть a = 3, b = 7,
В силу ступенчатого характера второй функции графики y1 и y2 пересекаются в двух точках: при x1 = 12 и x2 = 15, но согласно условию, нас интересует именно первое значение, как меньшее. Так вот, для того, чтобы без перебора определить область пересечения, я ввёл третью функцию — это просто прямая, которая ограничивает функцию y2 снизу и имеет уравнение .
Теперь остаётся найти точку пересечения двух прямых (y1 и y3) и скорректировать ответ из ограничения на искомый x.
Ведь исходя из условия, он может принимать только те значения, при которых соблюдается условие кратности числителя знаменателю в уравнении (2), т.е. , где n – некий натуральный множитель. Для этого решим простое уравнение и, если полученный корень не будет соответствовать нашим требованиям, сместим его до ближайшего подходящего. Поскольку вспомогательная функция y3 имеет положительный наклон, а все значения y2 находятся выше неё, то корректировку корня следует производить всегда в большую сторону. Так, в нашем случае, прямые пересекаются при x = 11.25 (чёрная точка на графике), и ближайшем большим значением, удовлетворяющим условие, будет 12 (красная точка), что и является ответом.
Поскольку в вопросе на Тостере стоял тег Python, ниже я приведу скрипт для решения этой задачи с использованием функции, для нахождения бюджета текущего дня на основании бюджета дня следующего. Применяем функцию нужное количество раз и, вуаля, получаем ответ!
def this_day_budget(next_day_budget):
a = bottle_price - tare_return_price
b = bottle_price
c = next_day_budget
x = (a - a*b + b*c)/(b - a)
if (x - c) % a: # value does not match the increment
x = ((x-c)//a + 1) * a + c
return x
bottle_price = 7
tare_return_price = 4
party_duration_days = 5
last_day_budget = bottle_price
for days_to_party_end in range(party_duration_days):
if days_to_party_end == 0:
current_budget = last_day_budget
else:
current_budget = this_day_budget(current_budget)
print('first day budget was - %d' % current_budget)Вместо заключения:
задачей в данном примере были обусловлены как значения параметров , так и само уравнение ; предлагаемый подход с небольшиими изменеиями применим и в других подобных случаях — целью публикации было лишь описание самого принципа без выведения универсального решения для общего случая — поэтому не судите строго (код на Python в т.
ч.), и приятной всем пятницы!
Открытый урок по теме: «Деление. Решение уравнений» 5 класс | План-конспект урока по алгебре (5 класс) по теме:
ТЕМА УРОКА: Деление. Решение уравнений.
ЦЕЛИ УРОКА:
— продолжить формирование навыков деление многозначных чисел при
решении уравнений, навыков устного счета;
— знать: правила нахождения компонентов деления и умножения;
— уметь: применять правила нахождения неизвестных компонентов
уравнения, выполнять проверку уравнения для заданного корня,
оформлять решение уравнения;
— развивать речь учащихся, умение работать в парах, развивать навык
самостоятельной работы;
— коррекция развития психофизических функций
(память, внимание, мышление и т.д.)
— воспитывать культуру общения, математическую грамотность и интереса
к предмету;
ОБОРУДОВАНИЕ: плакаты, компьютер, проектор, карточки для самостоятельной
работы, листок контроля, ребус, кроссворд
ХОД УРОКА
- Организационный момент.

«Легко и прекрасно дается учение,
если у вас хорошее настроение»
А как у вас настроение? Возьмите листочки с солнышком, улыбнитесь ему и приготовьтесь к работе. Переверните листок. Ребята, сегодня это основной ваш документ на уроке «Листок самоконтроля». В него вы будете вписывать знак «+», если справился и знак «-», если не справился за все виды работ на уроке.
- Чтобы определить тему урока, я предлагаю вам разгадать ребус.
Тема урока: ДЕЛЕНИЕ (презентация)
Значение слова деление по словарю В.Даля (презентация)
Задание на внимание.
Найдите слова, которые мы будем использовать на этом уроке:
АЕНГКОРЕНЬЕНРЛ
ПРУРАВНЕНИЕЗДЖ
ЮЖНЕИЗВЕСТНОЕ
Определим цели и задачи урока.
Запись в тетрадях темы урока.
- Актуализация темы. (фронтальная работа)
- Устный счет. (сигнальные карточки)
Повторение таблицы умножения.
Если ответ правильный – голубой, неправильный – красный.
Математический тренажер за 5 класс. (стр. )
- Устная работа. (презентация)
- Что называют делением?
(действие, с помощью которого по произведению и одному из множителей находят другой множитель)
- Назовите компоненты деления?
( делимое, делитель, частное)
- Как называют число, которое делят?
(число, которое делят)
- Что такое делитель?
(число на которое делят)
- Как называют результат деления?
(частное)
- Какие свойства деления вы знаете?
(свойства: : на 1; : на само себя; : на 0)
- Задание на мышление. (презентация)
Вопросы: 1). Какое из чисел пропущено? (1-8, 2-15)
2). Как получили результат? (деления)
- Новая тема. (презентация)
Задание.
Заполним таблицу.
Делимое | 36 | ? 48 | 35 | ? 72 |
Делитель | ? 4 | 21 | ? 7 | 12 |
Частное | 9 | 4 | 5 | 6 |
Вопросы: 1). Как найти неизвестный делитель?
(надо делимое разделить на частное)
2). Как найти неизвестное делимое?
(надо частное умножить на делитель)
3) Как найти неизвестный множитель?
(надо произведение разделить на другой множитель)
- Решение кодированных уравнений. (презентация)
Вызов учащихся к доске, индивидуальная работа.
Задание. Решите уравнения и угадайте слово:
1) 384 : x = 12 (32 — З)
2) 390 :у = 13 (30 – А)
3) х : 21 = 23 (483 – Д)
4) 2у + 60 = 120 (30 — А)
5) 50 – 4х = 18 (8 – Ч)
6) 5х = 150 (30 – А)
30 | 16 | 32 | 483 | 50 | 8 |
А | Е | З | Д | Н | Ч |
Должно получиться слово – Задача
- Задание на память, внимание, мышление.
(презентация)
Задание. Из пяти терминов выбери два, которые наиболее точно определяют математическое понятие «уравнение».
Корень, равенство, сумма, неизвестное, множитель (корень, равенство)
- Физкультминутка. (презентация)
Если ответ правильный – хлопок над головой, если неправильный – подпрыгиваем.
- Работа по учебнику. (презентация)
Задание. Решение задачи на составление уравнения. Стр.77. № 489 а
Х – задуманное число. Х : 4 – 2 = 7
Х : 4 = 7 + 2
Х : 4 = 9
Х = 36
- Самостоятельная работа. (презентация )
Работа в карточках, по вариантам. (индивидуальная работа)
Задание.
1 вариант. 1. Решите уравнение: а) 144 ∙ х = 576 (х = 4)
б) 121 : у = 11 (у = 11)
в) n : 8 = 35 (n = 200)
2.
Решите задачу. Незнайка задумал число. Это число он умножил
на 9 и к полученному результату прибавил 40.
Получилось 76. Какое число задумал Незнайка? (4)
2 вариант. 1. Решите уравнение: а) у ∙ 37 = 444 (у = 12)
б) m : 17 = 34 (m = 578)
в) 144 : х = 12 (х = 12)
2. Решите задачу. Знайка задумал число. Это число он увеличил
в 4 раза и к полученному результату прибавил 18.
Получилось 54. Какое число задумал Знайка? (9)
- Резерв. (презентация)
Задание. Решение кроссворда.
Вопросы: По горизонтали: 1. Любимая оценка ученика. (пятерка)
3.
«Страшная» оценка. (двойка)
4. Компонент действия сложения. (слагаемое)
5. Действие, обратное делению. (умножение)
По вертикали: 6. Результат сложения. (сумма)
2. Равенство переменной. (уравнение)
3. Компонент действия деления. (делимое)
- Итог урока:
Взаимопроверка (работа в парах) самостоятельной работы. Выставление оценок.
Вопросы: Что мы узнали на уроке?
На солнышке отметьте свое настроение
Прекрасное – красный
Хорошее – желтый
Плохое – зеленый
Ответьте на вопрос:
— Над чем я еще хочу поработать?
- Домашнее задание.
п.12 стр.74 ответить устно на вопросы.
стр. 76 №524, №525, №514
Заполнить листочки самоконтроля и сдать учителю.
ЛИСТОК САМОКОНТРОЛЯ Фамилия, имя ______________________ Устный счёт «_____» Ребус «_____» Занимательные задания «_____» Ответы на вопросы «_____» Решение уравнения «_____» Решение задачи «_____» Кроссворд «_____» Над чем я ещё хочу поработать: ______________________________ | ЛИСТОК САМОКОНТРОЛЯ Фамилия, имя ______________________ Устный счёт «_____» Ребус «_____» Занимательные задания «_____» Ответы на вопросы «_____» Решение уравнения «_____» Решение задачи «_____» Кроссворд «_____» Над чем я ещё хочу поработать: ______________________________ |
ЛИСТОК САМОКОНТРОЛЯ Фамилия, имя ______________________ Устный счёт «_____» Ребус «_____» Занимательные задания «_____» Ответы на вопросы «_____» Решение уравнений «_____» Решение задачи «_____» Кроссворд «_____» Над чем я ещё хочу поработать: ______________________________ | ЛИСТОК САМОКОНТРОЛЯ Фамилия, имя ______________________ Устный счёт «_____» Ребус «_____» Занимательные задания «_____» Ответы на вопросы «_____» Решение уравнения «_____» Решение задачи «_____» Кроссворд «_____» Над чем я ещё хочу поработать: ______________________________ |
ЛИСТОК САМОКОНТРОЛЯ Фамилия, имя ______________________ Устный счёт «_____» Ребус «_____» Занимательные задания «_____» Ответы на вопросы «_____» Решение уравнения «_____» Решение задачи «_____» Кроссворд «_____» Над чем я ещё хочу поработать: ______________________________ | ЛИСТОК САМОКОНТРОЛЯ Фамилия, имя ______________________ Устный счёт «_____» Ребус «_____» Занимательные задания «_____» Ответы на вопросы «_____» Решение уравнения «_____» Решение задачи «_____» Кроссворд «_____» Над чем я ещё хочу поработать: ______________________________ |
7 · 5 = 40 на нуль делить нельзя
8 · 9 = 72 54 : 9 = 6
0 : 5 = 5 а : а = 1
Формула деления— Что такое формула деления? Примеры
Формула деления используется для деления числа на равные части.
Символы, которые мы используем для обозначения деления, (÷) и (/). Таким образом, «p, деленное на q», может быть записано как: (p÷q) или (p/q). Давайте посмотрим формулу деления вместе с решенными примерами в следующем разделе.
Что такое формула деления?
Формула деления — это формула деления, которая является одной из четырех основных арифметических операций. Формула деления используется для того, чтобы поровну разделить число на множество частей. Формула деления данного значения может быть выражена как
Где,
- Делимое – это число, которое нужно разделить
- Делитель — это число, которое нужно разделить на .
- Результат — частное.
Формула деления для проверки
Давайте выясним, как мы можем проверить наш ответ деления, используя формулу деления. Например, 8 ÷ 2 = 4, остаток = 0. Другими словами, 8 = 2 × 4 + 0. Этот метод проверки может быть выражен следующим образом:
Дивиденд = (Делитель × Частное) + Остаток.
Рассмотрим еще один пример, где
- делимое = 9
- делитель = 3
- частное = 3
- остаток = 0
Подставляя значение в формулу, получаем 9 = (3×3)+0=9. Поэтому наш ответ правильный.
Хотите найти сложные математические решения за считанные секунды?
Воспользуйтесь нашим бесплатным онлайн-калькулятором, чтобы решить сложные вопросы. С Cuemath находите решения простыми и легкими шагами.
Записаться на бесплатный пробный урок
Примеры формулы деления
Пример 1: Разделите, используя формулу деления, значение 500 на 50. Какое получится частное?
Решение:
Чтобы найти: частное
Делимое = 500.
Делитель = 50,
Используя формулу деления,
Дивиденд/делитель = частное
(500/50) = 10
= 10
Ответ: после деления частное будет 10.
Пример 2: 200 шоколадок были распределены поровну между 40 детьми.
Сколько шоколадок дали каждому ребенку? Рассчитайте это по формуле деления.
Решение:
Найти: Сколько шоколадок дали каждому ребенку.
Всего конфет = 200
. Всего детей = 40
. Используя формулу деления,
Шоколадки, выданные каждому ребенку = (Всего шоколадок / Всего детей)
= (200/40)
= 5
Ответ: Каждому ребенку дали по 5 шоколадок.
Пример 3: У Лизы 4 щенка. Он купил 36 жевательных костей, чтобы накормить их поровну. Сколько костей достанется каждому щенку?
Решение:
Количество щенков у Лизы = 4.
Количество костей = 36.
Количество костей у каждого щенка = 36/4 = 9.
Ответ: Каждый щенок получит 9 костей.
Часто задаваемые вопросы о формуле дивизиона
Из каких частей состоит формула дивизиона?
Здесь представлены термины, относящиеся к делению, которые также считаются частями формулы деления.
- Дивиденд
- Делитель
- Частное
- Остаток
Что такое формула деления для проверки?
Для перепроверки нашего ответа по разделу мы склонны следовать методу проверки по разделу. Этот метод проверки может быть выражен как дивиденд = (делитель × частное) + остаток.
Как использовать формулу деления?
Обычно формула деления используется для деления числа на равные части. Рассмотрим пример.
Пример: у Суши есть 28 печений, и она хочет поровну распределить их между двумя своими детьми. Как она будет делить печенье поровну?
Решение: количество файлов cookie = 28
.
Количество детей = 2
Количество печенья, которое будет у каждого ребенка = 28/2 = 14
Уравнения и неравенства — Уравнения деления
Уравнения и неравенства — Уравнения деления — Первый взгляд| Дом | Учитель | Родители | Глоссарий | О нас |
К
решать
уравнение деления, используйте обратное
операция умножения.


(презентация)