|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Yasha Davidov 2:5020/400 18 Feb 2002 01:44:00 To : Egorov Pavel Subject : Re: 8 ферзей -------------------------------------------------------------------------------- Привет Egorov, 17 февраля 2002 г., 23:26:48, ты писал: EP> YD> Hаше положение доски хранится в виде [04752613]. EP> YD> Ясно, что есть также EP> YD> [06471352] (Отражение относительно главной диагонали) EP> YD> [73025164] (Отражение относительно горизонтали) EP> YD> [31625740] (Отражение относительно вертикали) EP> YD> . EP> YD> . EP> YD> . EP> YD> И т.д. Итого 8 штук. Вопрос такой: можно ли как-нибудь придумать EP> YD> какое-то разделение множества всех позиций на 8 подмножеств (где каждое EP> YD> получается из другого поворотами и отражениями), а потом определить EP> YD> относится ли положение к какому-нибудь из них? EP> Hу, так и делать: EP> 1 Hашел и сохранил в список все расстановки, объявив их непомеченными. EP> 2 N=1 EP> 3 выбрал любую непомеченную и пометил ее N EP> 4 попременял к ней симметрии EP> 5 все полученные в п.3 пометил N EP> 6 N = N+1 EP> 7 перешел к п.3 Всё равно нужен массив с кучей бесполезной информации. Этого то я и хотел избежать. К тому же нужна какая-то предварительная обработка. Пока я сделал так: Я перебираю значения в таком порядке: [01234567] [01234576] [01234657] [01234675] ... Всё это очень похоже на простой перебор чисел. Поэтому я делаю так, когда я нахожу перестановку, являющуюся решением я беру все её 8 отражений, и если хоть одно из этих отражений меньше, (то есть было раньше) чем текущая доска (я могу легко это определит), то значит этот тип доски я уже находил раньше. В противном случае это решение. Плюс я перебираю только от [01234567] до [476543210], то есть только половину. Hо я думаю, что есть способ ещё проще... -- Best regards, aBocT. Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru --- ifmail v.2.15dev5 * Origin: Talk.Mail.Ru (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/4598a98f6299.html, оценка из 5, голосов 10
|