xHellKern
@xHellKern
IT специалист аутсорсер

Подскажите алгоритм

Необходимо найти максимально возможное число, которое нельзя получить комбинируя два заданных числа, используя операции суммирования. Например заданы числа 2 и 5 — ответ 3, остальные натуральные числа можно получить комбинируя 2 и 5 (21 = 5 + 5 + 5 + 2 + 2 +2). Если ответ — бесконечность — об этом тоже нужно сообщить.
Числа все натуральные.
  • Вопрос задан
  • 4290 просмотров
Решения вопроса 1
@mayorovp
Вот полное решение.

Пусть исходные числа — a и b.
1. Очевидно, если числа не являются взаимно простыми — ответом будет бесконечность.
2. Известно, что любое число m может быть представлено как m = ka+lb при взаимно простых a и b.
Для того, чтобы m не было разложимым, должно выполняться одно из двух условий: k<0 или l<0.

Заметим, что (k+b)a+(l-a)b = ka+lb = (k-b)a+(l+a)b. Отсюда следует, что для неразложимом m должны существовать такие k и l, что k<0, l<a или k<b, l<0 (иначе можно будет найти разложение по одной из этих формул).
Поскольку нам известны ограничения сверху как для k, так и для l, притом эти ограничения независимы,
можно взять эти переменные по-максимуму.
m = (-1)a+(a-1)b = (b-1)a+(-1)b = ab-a-b.

Следовательно, для взаимно простых a и b ответом будет ab-a-b, а для имеющих общие делители — бесконечность.
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
FilimoniC
@FilimoniC
Как обычно 2 пути — Тупой перебор и функциональный анализ.
Думаю, что вам нужно составить систему простых уравнений
Ответ написан
fader44
@fader44
Бесконечность будет когда они не взаимно просты, во всех остальных случаях ответ конечен. Дальше гуглите диофантовы уравнения, я точного решения до того как усну не выведу =)
Ответ написан
onehell
@onehell
Кофемашина
Сам ответить не смогу (я — прикладной программист, а не математик).
Если честно: тебе это нужно для каких-то практических задач?
Ответ написан
FilimoniC
@FilimoniC
По условию, оба числа обязаны присутствовать в выражении минимум 1 раз?
изначальная система уравнений такая?
aX + bY > Z
a Э [1;+inf]
b Э [1;+inf]
X > 0
Y > 0
X = *
Y = *

По-моему, тут простой матан, хотя у меня из образования только школа — не смогу решить.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы