Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > Как расставить N чисел равноудалённо?


Автор: Proger10 8.1.2014, 01:29
Возникла проблема, не знаю с какой стороны подступиться. Отупение какое-то нашло на меня =) У меня есть 50 чисел (0..49, по порядку), нужно выбрать N чисел да так, чтобы они были максимально равноудалены друг от друга (начать можно прямо с выбора первого числа и далее).

Я не понимаю как можно выбрать такие числа, если 50/N даёт дробные значения. Если N = 5, то тут без проблем - каждое пятое равноудалено, а что если N = 19? Нужно выбирать 2.63-ье число, а как это? smile Округлить куда-то и в конце последние числа насколько получится? Желательно, конечно, чтобы более равномерно они стояли без большой дырки в конце( Или округлять по очереди, то вверх, то вниз?  smile)

Как получить оптимальную равноудалённость чисел друг от друга насколько это возможно?

Автор: paperstreet7 8.1.2014, 08:53
Можно более точную формулировку задачи? 50 чисел в каком диапазоне? упорядочены ли числа? это случайный набор или они идут по порядку от 0 до 50?

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Как-расставить-N-чисел-равноудалённо-id52cc7fedae2015423f8b4567#findElement_E7045_52cce7c2ae20159619564376_0

Автор: Akina 8.1.2014, 12:38
Цитата(Proger10 @ 8.1.2014,  02:29)
а что если N = 19? Нужно выбирать 2.63-ье число, а как это?

Округляй после умножения.

1 * 2.63 = 2.63 -> 3
2 * 2.63 = 5.26 -> 5
3 * 2.63 = 7.89 -> 8
...
19 * 2.63 = 49.97 -> 50

Автор: shgurbanov 16.1.2014, 19:53
Сортировка как раз таки и даст то что нужно, числа максимально удаленные друг от друга

1 + n
2 + n-1
3 + n-2

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Как-расставить-N-чисел-равноудалённо-id52cc7fedae2015423f8b4567#findElement_E7045_52d80e76ae20151c04305102_0

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)