Поиск:

Ответ в темуСоздание новой темы Создание опроса
> построение приблизительно равных отрезков 
:(
    Опции темы
Swi
Дата 10.1.2007, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 26.9.2006

Репутация: нет
Всего: нет



Допустим у нас есть 10 отрезков на интервале от 0 до 1(все отрезки идут строго друг за другом), надо уменьшить количество отрезков до 4, причем таким образом, что бы все отрезки имели приблизительно равную величину. Длина начальных отрезков полностью случайна, интервал так же подразумевается абсолютно любые начальные и конечные количества отрезков. Начало следующего отрезка находится в окончании предыдущего и соответственно все точки принадлежат как первому так и второму массиву отрезков.



А вообще задача заключается в следующем, есть n случайных чисел, надо из них сделать m случайных чисел, так что бы расстояния были примерно одинаковыми.
PM MAIL   Вверх
maxim1000
Дата 10.1.2007, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



для начала надо придумать критерий "приблизительной равности"
средняя длина составных отрезков - (общая длина)/4
например, можно взять сумму модулей отклонений от средней длины
или квадратов отклонений (тогда получится что-то вроде дисперсии)

так или иначе потом надо найти разбиение, оптииальное с точки зрения выбранного критерия

перебираем конец первого составного отрезка (ну и, соответственно, начало второго)
для каждого варианта его конца - конец второго (должен быть не левее первого)
ну и для каждого конца второго - конец третьего

так получаем все варианты разбиений, выбираем из них то, которое даёт наименьшее значение критерия

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


--------------------
qqq
PM WWW   Вверх
Akina
Дата 10.1.2007, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Для меня вообще загадка, что означает "сделать одни числа из других"...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
maxim1000
Дата 10.1.2007, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



Цитата(Akina @  10.1.2007,  18:02 Найти цитируемый пост)
Для меня вообще загадка, что означает "сделать одни числа из других"...

отображение smile


--------------------
qqq
PM WWW   Вверх
esperant0
Дата 10.1.2007, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 714
Регистрация: 20.5.2005

Репутация: 4
Всего: 14



Задача НП полная а посему решение - перебор


--------------------
 
 Student->Teacher Assistant ->Research assistant->Microsoft Software Development Engineer 

Пользователь получил наказание за то, что проигнорировал замечание которое было написано модератором  а затем стерто и которое он - пользователь не мог видеть. 
PM MAIL   Вверх
maxim1000
Дата 10.1.2007, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



Цитата(esperant0 @  10.1.2007,  18:23 Найти цитируемый пост)
Задача НП полная а посему решение - перебор

Хм... вот так вот сразу НП-полная?..
а почему?

Добавлено @ 19:46 
мне, кстати, приходят мысли о применении динамического программирования:
здесь стандартная для него ситация - "марковская", т.е. слева и справа от любой точки можно разбивать абсолютно независимо (при подходящем критерии, например, аддитивном или приводимом к нему)

для начала постановка:
нужно разбить отрезки на группы так, чтобы минимизировать критерий "сумма f(Li)", количество групп разбиения - N, количество исходных отрезков - M
строим массив a1[M+1]: a1[m]=f(L[0,m]), т.е. слагаемое из критерия для первого отрезка, если он начинается в 0 и заканчивается в m-й точке
по нему строим массив a2[m]=min[по k] ( a1[k]+f(L[k,m]) )
ну и так далее (1 заменить на i, 2 - на i+1)
сложность получается N*M...
ну, если памяти жалко, то N*M*M


--------------------
qqq
PM WWW   Вверх
esperant0
Дата 10.1.2007, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 714
Регистрация: 20.5.2005

Репутация: 4
Всего: 14



согласен, условие плохо прочитал


--------------------
 
 Student->Teacher Assistant ->Research assistant->Microsoft Software Development Engineer 

Пользователь получил наказание за то, что проигнорировал замечание которое было написано модератором  а затем стерто и которое он - пользователь не мог видеть. 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0712 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.