Re: Небольшая задачка-этюд.
От: LCR Россия lj://_lcr_
Дата: 04.05.03 10:04
Оценка:
Здравствуйте, sherifov, Вы писали:

S>Вот вам небольшая задачка. Я тут встретил,и решение заинтересовала. Кто додумается, напишите: sherifov@ezmail.ru


S>Есть 6 чисел 9 (a, b, c, d, e, f : integer), которые имеют значения 1, 2, 3, 4, 5, 6, но какое значение какая переменная имеет — не знаем. Мы имеем право "ставить на весы" любые две переменные, то есть мы можем узнать, какое из любых двух чисел больше. Как за минимальное (ну уж не больше 12) таких взвешиваний узнать, какому значению какая переменная соответствует? Нужно решать при помощи Delphi. Спасибо заранее!


Сорри, что замечание не в тему, но алгоритм не имеет никакого отношения к языку или среде програмирования.

Решение.

Эта задача сводится к задаче сортировки массива. Вашу задачу можно переформулировать следующим образом: отсортировать массив, используя наименьшее количество сравнений. И то, что здесь 6 элементов — непринципиально. То есть всё что нужно — это запустить быструю сортировку на массиве из 6-и элементов.

Усё
quicksort =: (($:@(<#[),(=#[),$:@(>#[)) ({~ ?@#)) ^: (1<#)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.