Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Детская задача

473  
dArtagnan знакомое лицо25.06.19 23:22
dArtagnan
NEW 25.06.19 23:22 

Для пары чисел (N, M), N>M получить в явном виде выражения с использованием только целочисленной арифметики для вычисления такой тройки чисел (K1, K2, L), что K1*L+K2*(L-1)=N, L<=M, а сумма K1+K2 минимальна. Использование логических конструкций и циклов исключается - никаких там if...then...else или while, никакой рекурсии, только хардкор базовые операции (включая деление с нахождением целых частного и остатка). Задачу можно проиллюстрировать максимально равномерным распределением N одинаковых предметов по минимальному числу корзин, при котором в каждой корзине будет не более M предметов, а максимальная разница в количестве предметов между любыми двумя корзинами не превосходит 1.

Задача, очевидно, простенькая, но интересно, как с ней справятся школьники.

#1 
AlexNek патриот26.06.19 00:04
AlexNek
NEW 26.06.19 00:04 
в ответ dArtagnan 25.06.19 23:22

Школьники тут явно не бывают. А так смысл - просто поиграться?

#2 
dArtagnan знакомое лицо26.06.19 00:14
dArtagnan
26.06.19 00:14 
в ответ AlexNek 26.06.19 00:04, Последний раз изменено 26.06.19 00:20 (dArtagnan)

Здесь бывают родители школьников. Задача встретилась реально по работе, ограничение на явность вида выражений и использование только целочисленной арифметики - в тренировочных целях. Решение, найденное сходу, мне не нравится - оно неизящное и несколько громоздкое, что меня удивило - думал, что задача вообще примитивная. Но я не сомневаюсь, что есть гораздо более продвинутые математически личности (в том числе - школьники), которые смогут предложить более красивый вариант. Мне интересно было бы на него посмотреть. В общем - да, скорее, поиграться, но, ИМХО, эти игры небесполезны в конечном итоге.

#3 
Murr патриот26.06.19 02:08
Murr
NEW 26.06.19 02:08 
в ответ dArtagnan 25.06.19 23:22, Последний раз изменено 26.06.19 02:09 (Murr)

максимально равномерным распределением

-----

Когда разложишь - переложи так, чтобы один предмет был в одной клетке, а столбцы - корзинками.

Будет два решения.

Первое - в линию.

Второе - квадратом. Квадратный корень с округлением в верх посчитаешь сам.


Ну или Я условия не понял.

#4 
AlexNek патриот26.06.19 23:12
AlexNek
NEW 26.06.19 23:12 
в ответ dArtagnan 25.06.19 23:22, Последний раз изменено 26.06.19 23:15 (AlexNek)

Что то я так и не могу понять смысла, пока только так получилось


#5