2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Упорядочить объекты (Взвешивания, Алгоритм)
Сообщение18.06.2008, 06:29 


13/06/08
43
Имеется n объектов.
Все они различного веса.
Как нужно взвешивать их, чтобы потребовалось минимальное число взвешиваний для того, чтобы расположить их в порядке возрастания(убывания) веса?

Например для 3-х объектов я рассуждаю так:
· За одно взвешивание можно установить правее или левее один объект относительно другого
· После одного взвешивания имеется три различных варианта расположения третьего объекта относительно первых двух
· Если бы имелось два варианта—хватило бы ещё одного взвешивания
· С каким бы из двух объектов не сравнили третий—он или правее или левее него
· Правее или левее одного из двух объекта может находиться два варианта расположения третьего
· После третьего взвешивания неопределённостей не останется

Для 4-х:
· Четвёртый объект надо сравнивать так, чтобы после результата взвешивания было минимальное число вариантов расположения
· Очевидно, если сравнить со вторым, то их всего два.
· После этого для точного определения расположения четвёртого объекта нужно ещё одно взвешивание

А вот для 5-ти алгоритм немного меняется, хотя для 6-ти вроде такой же.


Непонятно как можно вывести общий алгоритм.

 Профиль  
                  
 
 Re: Упорядочить объекты (Взвешивания, Алгоритм)
Сообщение18.06.2008, 06:57 
Заслуженный участник
Аватара пользователя


23/08/07
5420
Нов-ск
Евгений Б. писал(а):
А вот для 5-ти алгоритм немного меняется, хотя для 6-ти вроде такой же.[/color]
Непонятно как можно вывести общий алгоритм.

Разве меняется? Мне кажется, что для любого количества чисел их надо сортировать методом деления пополам
(т.е. любой другой метод сортировки в худшем случае будет не лучше, чем делением пополам).
Почитайте где-нибудь про сортировку.

 Профиль  
                  
 
 
Сообщение18.06.2008, 07:20 


13/06/08
43
Цитата:
Разве меняется? Мне кажется, что для любого количества чисел их надо сортировать методом деления пополам

Вот Я так же думал, но здесь получается что таким методом для 5-ти объектов надо 8 взвешиваний, а на самом деле минимальное число 7.

 Профиль  
                  
 
 
Сообщение18.06.2008, 07:29 
Заслуженный участник
Аватара пользователя


23/08/07
5420
Нов-ск
Евгений Б. писал(а):
Цитата:
Разве меняется? Мне кажется, что для любого количества чисел их надо сортировать методом деления пополам

Вот Я так же думал, но здесь получается что таким методом для 5-ти объектов надо 8 взвешиваний, а на самом деле минимальное число 7.
Как получается 7?

 Профиль  
                  
 
 
Сообщение18.06.2008, 07:58 


13/06/08
43
Цитата:
Как получается 7?

(1,2,3)сначала упорядочить 3 тремя взвешиваниями
(4)затем взвесить 4-ый и 5-ый
(5)потом 4-ый и 2-ой
(6)4-ый и 3-ий или 4-ый и 1-ый
(7)5-ый с 1-ым или с 3-им

 Профиль  
                  
 
 
Сообщение18.06.2008, 08:10 
Заслуженный участник
Аватара пользователя


23/08/07
5420
Нов-ск
Евгений Б. писал(а):
Цитата:
Как получается 7?

(1,2,3)сначала упорядочить 3 тремя взвешиваниями
(4)затем взвесить 4-ый и 5-ый
(5)потом 4-ый и 2-ой
(6)4-ый и 3-ий или 4-ый и 1-ый
(7)5-ый с 1-ым или с 3-им

Пусть 4-ый < 5-ый. И окажется, что 4-ый < 1-ый. Остался один ход, его не хватит.

Если 4-ый < 5-ы, то надо
(5) потом 4-ый и 1-ой,
тогда 7-ми ходов хватает.

 Профиль  
                  
 
 
Сообщение18.06.2008, 08:46 


13/06/08
43
И действительно правда..
Цитата:
Пуст 4-ый < 5-ый. И окажется, что 4-ый < 1-ый. Остался один ход, его не хватит.


в книге "Логические задачи" автор Жан-Клод Байиф есть такая таблица:
Изображение
написано что для 5-ти 7 взвешиваний надо но не написано как

 Профиль  
                  
 
 
Сообщение18.06.2008, 10:13 
Заслуженный участник


09/02/06
4382
Москва
Всё подтверждается, количество взвешиваний $1+[log_2(n!-1)]$.

 Профиль  
                  
 
 
Сообщение18.06.2008, 10:19 


13/06/08
43
Цитата:
Всё подтверждается, количество взвешиваний $1+[log_2(n!-1)]$.

Ну формула-то конечно верна. Но алгоритм взвешивания не ясен. Не понятно как выбирать следующий объект для взвешивания.

 Профиль  
                  
 
 
Сообщение18.06.2008, 11:01 
Аватара пользователя


19/07/07
7
Ага, формула то верна. Она показывает минимум числа взвешиваний, но с чего вы взяли, что он всегда достежим?

 Профиль  
                  
 
 
Сообщение18.06.2008, 11:33 


13/06/08
43
Цитата:
но с чего вы взяли, что он всегда достежим?


если он есть, значит достижим. Всё зависит от того как мы взвешиваем. В этом и вопрос.
Ну сравните например:
чтобы упорядочить 5 объектов можно взвешивать как при пузырьковой сортировке
чтобы определить самый тяжёлый - 4 взвешивания
чуть легче - 3 взвешивания
ещё легче - 2
и ещё одно
10 получилось

и

методом деления пополам 8 взвешиваний




нашёл Вот здесь наконец-то.
Значит для любого количества подходит такой вариант? И является оптимальным?

 Профиль  
                  
 
 
Сообщение18.06.2008, 12:36 
Аватара пользователя


19/07/07
7
Евгений Б. писал(а):
если он есть, значит достижим. Всё зависит от того как мы взвешиваем.

В том-то и дело, что можно оценить снизу, но это не будет фактическим минимумом. До тех пор, пока не будет доказательста. Я пока такого не знаю.

 Профиль  
                  
 
 
Сообщение18.06.2008, 17:06 
Заслуженный участник


09/02/06
4382
Москва
Вообще то это оценка снизу. Легко получается оценка сверху. Упорядочивая последовательно k -ый элемент приводим в порядок с ранее приведёнными k-1 за $1+[log_2(k-1)]$ шагов. Поэтому оценка сверху есть $$U_n=\sum_{k=1}^{n-1}(1+[log_2k])=n-1+\sum_{k=1}^{n-1}[log_2k].$$
По видимому для малых n оценка сверху совпадает с оценкой снизу $L_n=1+[log_2(n!-1)].$

 Профиль  
                  
 
 
Сообщение24.06.2008, 17:22 
Аватара пользователя


17/05/08
358
Анк-Морпорк
О! Это ещё одна из задачек, которые любит мой учитель, а теперь и коллега, Сергей Тихонович Кузнецов. Действиетльно, 5 предметов можно рассортировать за 7 взвешиваний. Сейчас напишу как.

Добавлено спустя 2 минуты 23 секунды:

//а , увидел, нашли уже
Но мы учим курсантов искать решение так: после первых трёх измерений начинаем выписывать возможные варианты и смотреть, какое измерение разобьёт их на две более-менее равные группы.

 Профиль  
                  
 
 
Сообщение25.06.2008, 16:16 


13/06/08
43
Цитата:
Но мы учим курсантов искать решение так: после первых трёх измерений начинаем выписывать возможные варианты и смотреть, какое измерение разобьёт их на две более-менее равные группы


значит смысл в делении на равные группы.
Я, например, использовал такой метод, при котором группы или равные или в одной на 1 больше. И получалось 8 взвешиваний для 5 объектов.
А если сравнивать сначало пары, потом наибольшие из пар, то при таком методе вроде быстрее получается.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 15 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group