Бесцельно напрягая мозг
Mar. 12th, 2007 11:19 pmЗачем образование я в муках получал?Тимур ШаовРазнообразия ради (чтоб мозги не заплесневели) пытаюсь решить задачку: дано c звёздочек, хочется их разместить, как на американском флаге: в n рядов и m столбцов, а в промежутках — ещё (n−1)·(m−1). Задача сводится к целочисленному решению уравнения
(n−1)·(m−1) + n·m = c
Кроме того, что (n−1)·(m−1) + n·m = 2·n·m−n−m+1 — нифига не помню. Зачем мне целый семестр читали дискретное программирование? Всё равно кроме полного перебора ничего не придумывается...
исходя из условий задачи, получаем:
n ∈ ℕ
m ∈ ℕ
2 ≤ n ≤ (c+1)/3
2 ≤ m ≤ (c+1)/3
А дальше — никак. Опять хочется полный перебор устроить...
no subject
Date: 2007-03-12 06:42 pm (UTC)Я что-то не очень понял, что в задаче дано, а что найти. Чего ты ищешь-то - n и m?
no subject
Date: 2007-03-12 08:42 pm (UTC)Если проще
Date: 2007-03-13 04:41 am (UTC)Re: Если проще
Date: 2007-03-13 06:02 am (UTC)no subject
Date: 2007-03-13 04:45 am (UTC)Если есть хоть какая-то зависимость между n и m, то систему из 2 уравнений с тремя неизвестными можно решить, зная, что m и n положительные целые числа, но если это одно уравнение с тремя неизвестными - кроме как перебором, я не знаю, как.
2 неизвестных
Date: 2007-03-13 09:29 am (UTC)c — это константа.
Re: 2 неизвестных
Date: 2007-03-13 09:33 am (UTC)Вот оно что!
Тогда я решу, как время появится, путем замены переменной.
Смотря какое c
Date: 2007-03-15 06:27 am (UTC)При c=30 задача не имеет целочисленного решения.
Пришлось вместо звёздочек нарисовать шарики :-)
no subject
Date: 2007-03-15 06:49 am (UTC)Чтобы было без перебора надо добавить зависимость между n и m, например - ширина флага минимум в 2 раза больше высоты.
Тогда n>=m/2
Выражаем из равенства m через n, подставляем в неравенство.
Приводим всё к квадратному неравенству, решаем.
хе-хе
Date: 2007-03-15 06:51 am (UTC)no subject
Date: 2007-03-13 09:06 am (UTC)Далее в подавляющем большинстве случаев звёздочек может не хватить на такое размещение, но тогда тебя может быть устраивает и не до конца замощённая, наиболее близкая к идеальному замощению?
Третье, не имеет смысла (я так думаю) решение, когда n > 3m или 3n > m
А что если тебе развернуть задачу? Скажем надо замостить площадь m*n по указаной схеме и сколько звёздочек понадобиться? Тогда у тебя уже есть готовая формула.