Главное меню

Задача о наименьшем количестве воинов, победивших дракона. Как решить?

Автор Богдан_Р, Март 15, 2024, 05:32

« назад - далее »

Богдан_Р

Было ли это событие в действительности или всего лишь миф, не столь важно. Следует предложить формулу для расчета минимального количество воинов для победы и вычисленное значение, при известном числе голов дракона и количестве погибающих воинов от его удара.

Rakia

Если царю влом купить лицензионный Excel, то он может рассуждать так:
Число необходимых богатырей обозначим за х
1) После первого обмена ударами у дракона остаётся 1000- (x-0) голов,
богатырей остаётся x-3
2) После второго голов 1000 - (x-0) - (x - 3), богатырей x - 6
далее
3) голов 1000 - (x-0) - (x - 3) - (x - 6), богатырей x - 9
4) голов 1000 -  (x-0) - (x - 3) - (x - 6) - (x - 9), богатырей...
На шаге n
n) голов 1000 - n x + сумма из n членов арифметической прогрессии с шагом d=3 и начальным членом a=0.
1000 - xn +  S(n)>=0 голов больше нуля не должно оставаться
Формула суммы членов арифметичесской прогрессии
S(n) = (2a +d(n-1))n/2
2000 - 2x n + 3n^2 - 3n >=0
Решаем квадратное уравнение отнсительно n
n1,2 = ((2x+3) +- sqrt((2x+3)^2 - 24000))/6
И х, и n должны быть по законам жанра целочисленные.
Значит выражение под радикалом должно быть полным квадратом.
Корень из 24000 равен примерно 154,92. Берём к нему ближайшее целое.
Крупно повезло: 155^2 = 24025. Дальше перебор делать не надо.
получаем, что 2x+3 = 155, x =76, n=(155 +- 5)/6.
Опять же исходя из целочисленности, выбираем минус.
n=25.
На двацать пятом ударе четыре оставшихся богатыря отрубают последние четыре головы.
если уж речь идёт о формуле окончательной, то она весьма приблизительна
d - количество погибающих в один прием богатырей
k - остаток богатырей после последнего удара (может принимать значения от 1 до d+1)
g - количество голов
d*n(n+1)/2 + k >= g
Опять же квадратное неравенство
n^2 + n -2(g-k)/d>=0
нижний предел n1 = -0,5 - sqrt(0,25 + 2(g - k)/d) - отрицательное отбрасываем
верхний n2 = -0,5 + sqrt(0,25 + 2(g - k)/d)
Пренебрегая мелкими слагаемыми n = sqrt(2g/d)  - окончательная формула
В текущем случае n = 25,82 (приблизительно)
А если "с 2301 головой, да силой удара погубить 7 воинов"
(удивительно, но факт) n = 25,64. только первоначальное количество богатырей 177.
Окончательное количество все равно подбирать надо, из-за того, что мелкими членами пренебрегли.
                                                                              

Aril

Для наглядности решения, (по алгоритму царя-батюшки) можно определить соотношение числа голов дракона D к минимальному количеству воинов V, при силе удара дракона S, значения которых сведены в таблицу.
 Как видим, прослеживается циклическая закономерность. Численность голов дракона dᵣ в цикле и максимальное количество воинов Vᵣ в нем соответствует dᵣ = Vᵣ = S*R, а количество повторяющихся значений воинов равновелико R – порядковому номеру цикла (раунду сражения).
Максимальное значение числа голов в цикле  вычислим по формуле суммы первых членов арифметической прогрессии
Dᵣ = R(d₁ + dᵣ)/2 или  Dᵣ = R(S + S*R)/2.
Преобразуем формулу в уравнение относительно неизвестной R
R² + R - 2Dᵣ /S = 0.
Корень из уравнения определяет цикл R, в котором находится заданное значение  D:
R = [- 0,5 + √(0,25 + 2D/S)] (1),
квадратные скобки означают округление числа до ближайшего большего целого, например, при D = 23 и S = 3 имеем R = [3,4475..] = 4 (D в четвертом цикле). Теперь по местоположению D в цикле можно определить V.
В нашем случае 23 – 18 = 5 (18 соответствует Dᵣ – ₁, D на пятом месте в цикле), делим на R, 5/4 = 1,25. Округляем  до ближайшего большего целого [1,25] = 2. Теперь полученное значение суммируем  с максимальным значением воинов в предыдущем цикле (Vᵣ – ₁ = S*(R – 1)). Получаем количество воинов для победы: V = 9 + 2 = 11. В общем виде
V = Vᵣ – ₁ + [(D - Dᵣ – ₁)/R)].
После подстановки и преобразования приходим к формуле
V = [S*(R - 1)/2 + D/R] (2).

Kelvilu

1000
76  73  924
73  70  851
70  67  781
67  64  714
64  61  650
61  58  589
58  55  531
55  52  476
52  49  424
49  46  375
46  43  329
43  40  286
40  37  246
37  34  209
34  31  175
31  28  144
28  25  116
25  22  91
22  19  69
19  16  50
16  13  34
13  10  21
10  7   11
7   4   4
4       0
не знаю по какой формуле решать но вот расклад из эксельки первый удар за богатырями, дальше по столбцам после каждого раунда боя количество богатырей и количество голов у дракона. Получается минимум нужно 76 богатырей, за 25 раундов боя они снесут все головы дракону и останется 4 богатыря это и есть ответ

ZadaSIK

Я думаю, что 76 богатырей хватит вполне. Это же сумма обратной арифметической прогрессии. То есть получается, что на каждом этапе на 3 бойца меньше. У меня в конце осталось 4 богатыря, то есть они последние 4 головы срубили и всё.

Eneta

750 воинов отрубают 750 голов у дракона.
Голов после этого у дракона остаётся 250, да воинов после ответного удара дракона остаётся тоже 250, каждому воину по одной драконьей голове, они и приканчивают тут дракона.
А формула такова:
(1000 - X) = X : 3, где X - количество необходимых воинов.
Если для общего вида, то:
(G - X) = X : N, где G - количество голов дракона, N - какую часть воинов он убивает ответным ударом, X - количество необходимых воинов.

Mahura

Минимальное количество воинов 1000, если предположить, что все 1000 воинов нанесут удар дракону одновременно и лишат его всех голов, сами же останутся в живых.