Хакеры сновидений

Тема «Пасьянс Медичи и магические квадраты»

Магическим квадратом порядка n, где n - натуральное число,
называется квадрат, разбитый на n2 клеток, в которых размещены
целые числа от 1 до n2 так, что суммы, полученные от сложения чисел
каждой строки, каждого столбца и обеих диагоналей одинаковы.

Возьмем вот этот квадрат 4 порядка:

1,14,4,15
8,11,5,10
13,2,16,3
12,7,9,6

Мы имеем 4 масти, присвоим каждой масти 4 числа от 1 до 16 следующим образом:
(возьмем к примеру для каждой масти карты В,Д,К,Т) 1-Вп,2-Дп,3-Кп,4-Тп,5-Вк,6-Дк,...,16-Тч.

Теперь строим цепочку пасьянса следующим образом:

Записываем первую половину чисел квадрата в прямом порядке:
1,14,4,15,8,11,5,10 (т.е. Вп,Дч,Тп,Кч,Тк,Кб,Вк,Дб),
а вторую половину в обратном порядке:
6,9,7,12,3,16,2,13 (т.е Дк,Вб,Кк,Тб,Кп,Тч,Дп,Вч)
Получаем результат:
1.
Вп Дч Тп Кч Тк Кб Вк Дб Вч Дп Тч Кп Тб Кк Вб Дк
P(п,б,к,ч) = {0.02, 0.02, 0.02, 0.02}; F(14)=3:1:1:1:1:1:1:1:1:1:1:1:1:1

Теперь о квадрате.
Вышеуказанный квадрат является пандиагональным, т.е если замостить этим квадратом
плоскость(как плитками) и в любом месте плоскости “вырезать“ квадрат 4 порядка,
то он будет обладать теми же свойствами, что и исходный квадрат=)
Вот пример:
2,16,3,13
7,9,6,12
14,4,15,1
11,5,10,8

получаем:
1.
Дп Тч Кп Вч Кк Вб Дк Тб Тк Дб Вк Кб Вп Кч Тп Дч
P(п,б,к,ч) = {0.03, 0.02, 0.02, 0.02}; F(14)=3:1:1:1:1:1:1:1:1:1:1:1:1:1

Во как...

Теперь берем такой квадрат:
9,15,16,22,3
20,21,2,8,14
1,7,13,19,25
12,18,24,5,6
23,4,10,11,17

Квадрат нечетного порядка(5) т.е. 25 карт=)
попробуем составить цепочку присвоив числу 13 просто безымянную карту.
(возьмем карты 9,10,В,Д,К,Т).
//числу 13 по логике можно присвоить “кресто-бубовое“ значение т.е. вступает во взаимосвязь
и с крестями и с бубями, но в результате эксперимента выяснилось, что его можно вообще
выкинуть из цепочки, но можно и не выкидывать - все равно цепочка сложится//
крести кончаются на 12(Тк), пропускаем 13 и с 14(9б) начинаются буби.

Получаем:
1.
Вк Xб Вб Вч Вп 9ч Xч Xп Xк 9б 9п 9к Дб Кк Дк Дп Дч Тп Кп Кч Кб Тк Тч Тб
P2(п,б,к,ч) = {0.04, 0.03, 0.04, 0.03}; F(11)=3:2:1:3:3:2:1:2:1:3:3



Можно предположить, что ЦС, выполненная на основе магического квадрата не
нарушает баланса среды, т.е. не несет дальнейших “последствий“, после ее выполнения.

хинт:Попробуйте набейте вышеуказанный квадрат 5 порядка в Exel, расскрасьте числа 1-12 одним цветом,
14-25 другим и 13 - третим. Получите этакий импровизированный символ инь-янь квадратный=)

По поводу квадратов 4 порядка: всего их 880, а сколько из них можно проинтерпретировать в сходящиеся цепочки ПМ?

Особый интерес представляют собой магические квадраты 6 порядка, т.е. цепочки из 36 карт,
но по поводу них пока ничего сказать не могу, знаю лишь, что пандиагональных среди них нет.


Итог:
Что вы обо всем этом думаете???

Пишите сюда и на мыло {email удалён}
магические квадраты вещь конечно интересная ...
но каково практическое приложение этой закономерности?
еще конкретнее: мы используем пм в качестве модели сложения событий.
какие эффекты мы могли бы наблюдать согласно приведенным закономерностям.
я пока вижу что мы просто увидели бы красивый гармоничный узор из валентностей и симпатий,
ну возможно это добавило бы красоты и завершенности в финале сложения.
вернее атмосфере на последней карте.
в пм, лично меня интересуют хлопки, а в приведенных раскладах они довольно здорово частят, как бы.
октавы черезчур малы, поэтому аккорды сложно будет уловить, наверное.
возможно данные соотношения применимы в геомагии, для достижения каких-либо другого рода эффектов.
хотя мне кажется что эффективным былобы сложение в углах квадрата, или скажем по строкам.

“Можно предположить, что ЦС, выполненная на основе магического квадрата не
нарушает баланса среды, т.е. не несет дальнейших “последствий“, после ее выполнения.“
не согласен, мне кажется любая пм нарушает баланс, более того любая реализация какой-либо задумки нарушает баланс :)))

дело еще в процессе регистрации событий пм осознанием того, кто эту цепочку выкладывает.
он ведь сам расставляет симпатии и валентности.
в принципе мона попрбывать сделать такой эксперимент.
допустим все события которые нас интересуют всегда располагаются пандиагональными квадратами.
всегда и везде (вплоть до того что и остальные нерегистрированные тоже)
тогда, как только мы выложим карты трех разных мастей, и двух номиналов
(один из цифрового, другой из именованного диапазона),
мы уже запускаем цепочку (нажали спусковой крючок).
и теперь ожидаем и готовимся к событиям, которые выходит обязательно соответсвуют квадратам?
чтож технология упирается только в том чтобы убедить себя, что узор именно такой :)
(отыскать соответсвующие транзиты)

уж не подводит нас gearhead, через квадраты - к кубику рубика, на самом деле?

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

наверное :)
>магические квадраты вещь конечно интересная ...
>но каково практическое приложение этой закономерности?

По поводу практического применения и эффектов говорить пока еще рано.
Я опубликовал всего три квадрата, цепочки на основе которых
складываются, но не к каждому магическому квадрату получается
сходящаяся цепочка.
К примеру вот квадрат, цепочка которого не имеет ни одного транзита:
1,15,14,4
12,6,7,9
8,10,11,5
13,3,2,16

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

Не надо судить обо всей теме по трем примерам, квадратов 4 порядка 880 -
сколько из них является сходяшимися цепочками? - неизвестно.
Каково будет количество транзитов в этих цепочках(будет ли оно одинаковым
для всех этих цепочек?) - неизвестно.
Сколько квадратов 6 порядка-неизвестно.

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

В приведенном выше примере пандиагональными являются только первых
два квадрата.
Известно, что среди квадратов 6 порядка пандиагональных нет.
А еще есть магические кубы=)

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

Это понятно.

Предлагаю всем, кто заинтересовался, провести исследование(пока теоретическое) по теме.
Не каждый магический квадрат будет сходиться, например:
1,11,16,6
8,2,9,15
13,7,4,10
12,14,5,3
не сходится в ПМ. Замечу, что этот квадрат тоже является совершенным (пандиагональным), т.к. был “диагональным“ обходом того, что привел gearhead.
Возможно, любая ЦС в ПМ будет представляться магическим квадратом, но что это дает? Насколько я понимаю, в ПМ актуальной проблемой является построение цепочек по нужному шаблону карт и/или хлопков. Помогут ли тут квадраты?
С другой стороны, возможно, магические квадраты являются обобщением ПМ, а ПМ как частный случай придумали для тех, кто не умеет считать =)
Перенести теорию ПМ на математический язык, думаю, будет полезно - математический аппарат сразу даст много интересных теорем и удобное (математикам) представление.
Еще хочу отметить, что по сравнению с ПМ, где все номиналы рассматриваются как независимые (и можно их переставлять как угодно), в квадратах такая зависимость присутствует.
Мое мнение - ПМ и магические квадраты - это разные вещи, которые имеют общие точки и там только и можно строить аналогии. Но это не означает, что квадраты нельзя использовать аналогично ПМ, т.к. возможно в них используются другие “мегазаконы“, а не симпатия и валентность.
Как дальнейшее развитие теории предлагаю отказаться от явных аналогий с ПМ и посмотреть, как это можно использовать на практике.
gearhead, мне нравится что ты заострил внимание на свойстве пандиогональности.
что касается остального - увы.
что-что, а магические квадраты изучены математиками вдоль и попрек.
зайди в библиотеку, там в математическом разделе масса книг по головоломкам,
чем старше книга, тем больше инфы по поиску и структуре этих квадратов.
в инете тоже масса инфы лежит.
кстати, квадраты в конце-концов выводят на треугольник паскаля.
он фигурирует каким-то очень сложным образом при сложении пм.
пока же вопрос сложения пасьянса решается перебором.
чтоб решить аналитически сколько сходящихся цепочек и каких видов,
нужны люди с глубокими знаниями кибернетиками, на уровне кандидатов и магистров.
я конечно не закрещиваю твой интерес, возможно ты нароешь еще чего-нибудь интересное,
но тема дествительно необъятная, поэтому практическая сторона или применение,
особенно в связке с пм - оч важный момент.
>Возможно, любая ЦС в ПМ будет представляться магическим квадратом, но >что это дает?
Не любая.

По поводу “мегазаконов“:
В данной ситуации интересен алгоритм(паттерн) действия(движения) в
среде.
Мы имеем 2 среды с разными законами:
1.ПМ с симпатиями,валентностями и правилом осуществления транзитов(хлопков).
2.Магические квадраты со строками,столбцами,диагоналями,
НО(!) существуют алгоритмы(паттерны, каркасы,соотношения, как хотите так и называйте)
позволяющие при их помощи и сходящуюся цепочку ПМ получить и магический квадрат построить, т.е. независимые от среды исполнения.

Предлагаю осуществить практические действия по изучению темы
“ПМ+квадраты“
Получить в этой теме какие-то результаты путем теоретизирования довольно
сложно, поэтому предлагаю наработать какие либо начальные данные.
Взять те же 880 квадратов 4 порядка и узнать сколько из них представляют сходящиеся цепочки ПМ(думаю что таковых будет не много).
Потом уже можно будет взглянуть на эти цепочки и проанализировать чем они хороши и плохи.
Не хочется тратить время на изобретение велосипеда, поэтому прошу
поделится алгоритмами сверки цепочки ПМ на любом языке, но желательно
на Delphi(pascal) и ПМ софтом.(Из ПМ софта у меня есть PM Calculator 3.4.21 но дизассемблировать его и разбирать функцию сверки долго и нудно=))
глянь в топике “Создание и анализ ПМ.Написание программ“
там есть проги на дельфи с исходниками.
в принципе твоя задача простая, просто повозиться с набивкой всех квадратов в текст,
потом конвертнуть в карты и проверить сходимость участка цепочки.
проверка на сходимость в методе класса IsReconverging
заточишь под свой размер квадратов.

что касается пандиагональности квадратов.
в графике есть алгоритмы, которые позволяют сделать квадратный рисунок для заполнения площадей.
по типу обоев или узоров эшеровских.
ключ в гугле - tileable
он вроде простой, основан на расстоянии от краев по горизонтали и вертикали.
возможно его мона преобразовать для проверки или создания пандиагональности.
gearhead, квадрат размерностью 4 сходится не только по горизонтали но и по вертикали, если складывать по тем же правилам. Складывается (пока что не проверил) это квадрат по любым направлениям в любой последовательности строк. Формула получается точтно такая же. Как мне кажется такая формула может описывать абсолютно спокойное невозмущенное состояние некой среды. А размерность 4x4 характеризует изолированность системы. Т.е. 4-ре сферы + 4-ре способа взаимодействия. 6x6 должен видимо характеризовать в том числе внешние события, т.е. неизолированную систему. Могу предположить, что в данной матрице есть порядок обхода свойственный человеческой полосе.
gearhead, проверил и утверждаю, если у исходного квадрата формула F(n) = 3:1:1:1... (n-2 единиц) причем в любом направлении обхода то он будет пандиагональным, потому как в основе любого подобного квдрата будет лежать двоичный код Грея. И в первом твоем квадрате в том числе. Можно под данную двоичную форму подогнать другую последовательность кода, отличного от Грея. Например, таким способом получил квадрат:
1 14 3 16
7 4 5 2
9 6 11 8
15 12 13 10
Если этим квадратом замостить плоскость, то формула ПМ будет точно такой-же. Двоичный код Грея, как известно может иметь размерность 4, 8, 16
Так что пандиагональный квадрат размером 6 получить мне видется невозможным
Полностью пандиагональный квадрат будет только тогда (с условием сохранения сходимости ПМ согласно заданной формуле), когда формула
F(n) = 3:1:1:1... (n-2 единиц) и никакая другая. Могу доказать строго математически.
Если предположить, что сложение по квадрату происходит непрерывно (от последнего числа сразу переходим к первому), и мощность транзита отмечать сразу на квадрате, получим
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
Квадраты ТОЛЬКО ТАКОГО ВИДА симметричны относительно самих себя

Эта теория как мне кажется имеет важное практическое применение.

Рассматривая квадрат 4x4 я понял простую закономерность его построения.
Эти квадраты строятся по принципу независимого базиса, который описывает ситуацию. В первом случае это Код Грея. В моем примере - другой код + еще одна поледовательность. Кроме того, если каждую цифру представить в двоичном виде, то обнаруживается симметрия. Такую симметрию я бы отнес на равенство потребностей и внешних возможностей для их реализации.
Другими словами, в условиях наличия объективных возможностей формирование КОДА создает матрицу реализации, где можно просмотреть варианты развития событий. Для матрицы 4x4 кодом будет последовательность из четырех чисел.
Все что я тут наплел, кажется понять совершенно не возможно. gearhead, спасибо за то, что высказал такие замечательные идеи. Если у кого-либо интерес я обязвтельно все расскажу, но не сразу, мне нужно время для осмысления
gearhead, погляди мож пригодится,
здесь есть сверка ПМ

> const
> pm_maxl=36;
> magic_number=22/78;
>
> type
> pm_card = record
> N,M:char; // валентность и масть
> id:byte; // primary key - задается при инициализации ЦС, всегда возрастает
> end;
>
> pm_c_array = array[0..pm_maxl-1] of pm_card;
> pm_i_array = array[0..pm_maxl-1] of byte;
>
> pm_data = record
> p:integer; // длина цепочки 0..p
> c:pm_c_array; // карты
> k,t:pm_i_array; // флаги стационарности/мобильности и транзитов
> tcnt:byte; // счетчик транзитов
> end;
>
> var
> // PM-data
> d0,d1,d2:pm_data;
>
> i0,i1:int64;
>
> pm_busy : boolean = false;
>
> //----- показания часиков
> function gettsc:int64; assembler;
> asm
> db 0Fh, 31h
> end;
>
> //----- простое сложение
> procedure pm_process_simple;
> var a,aminus,aplus,b:integer;
> begin
> d2:=d1; // d2(тестовое состояние) = d1(текущее состояние)
> a:=0; // указатель на начало
> repeat
> if d2.p<2 then break; // если осталось 2 карты - выход
> aminus:=a; // (a-1)
> inc(a); if a>=d2.p then break; // выход, если указатель карты a > длины ЦС
> aplus:=a+1; // (a+1)
> if (d2.c[aminus].M=d2.c[aplus].M) or (d2.c[aminus].N=d2.c[aplus].N) then
> begin // условие сложения выполнилось
> for b:=a to d2.p do d2.c[b-1]:=d2.c[b]; // сжатие ЦС в точке указателя
> dec(d2.p); // длина ЦС уменьшилась
> a:=0; // указатель на начало
> end;
> until false; // и снова...
> end;
>
> //----- детальное сложение
> procedure pm_process_detailed;
> var a,aminus,aplus,b:integer; topid:byte;
> begin
> d2:=d1; a:=0; topid:=0; d1.tcnt:=0;
> repeat
> if d2.p<2 then break;
> aminus:=a;
> inc(a); if a>=d2.p then break;
> aplus:=a+1;
> if (d2.c[aminus].M=d2.c[aplus].M) or (d2.c[aminus].N=d2.c[aplus].N) then
> begin
> if d2.c[aplus].id>topid then // такое условие учета транзитов
> begin
> topid:=d2.c[aplus].id; // id верхней карты
> inc(d1.t[d2.c[aplus].id]); // флаг транзита (>0)
> inc(d1.tcnt); // увеличение счетчика транзитов
> end;
> inc(d1.k[d2.c[a].id]); // флаг мобильности (>0) стационарности (=0)
> for b:=a to d2.p do d2.c[b-1]:=d2.c[b];
> dec(d2.p);
> a:=0;
> end;
> until false;
> d1.k[d1.p]:=1; // последняя карта мобильная
> end;
>
> //----- перемешивание карт и сброс служебных флагов
> procedure pm_shuffle_and_clear_vkt(...);
> //...
>
> //----- применение маски порядка
> procedure apply_masque;
> //...
>
> //----- возвращает флаг соответствия параметров ЦС фильтру
> function filter_okay(...):boolean;
> //...
>
> //----- вывод результата
> procedure pm_print(...);
> //...
>
> //----- выработка слагающейся ПМ-последовательности
> procedure get_pm_sequence;
> const
> limit_of_tries=1000; // предел количества попыток сложения
> var
> tries_count:integer; // счетчик попыток сложения
>
> begin
> if pm_busy then exit;
> pm_busy:=true;
>
> d1:=d0; // d1(текущее состояние) = d0(инициализированное состояние)
>
> tries_count:=0;
>
> i0:=gettsc; // время начала простого поиска
> repeat
> pm_shuffle_and_clear_vkt(d1); // перемешивание карт
> apply_masque; // применить маску порядка к d1
> pm_process_simple; // сложить d1 просто
> inc(tries_count); // увеличить счетчик попыток
> if tries_count >= limit_of_tries then break;
> until d2.p=1; // признак успешного сложения
>
> if d2.p=1 then // если сложение успешно
> begin
> i1:=gettsc-i0; // время начала уточнения
> pm_process_detailed; // сложить d1 детализированно
> if filter_okay(d1) then pm_print(d1); // проверка фильтром и вывод
> while (gettsc-i1)/i1 < magic_number do ; // ожидание равновесия сил
> end;
>
> pm_busy:=false;
> end;
>Например, таким способом получил квадрат:
>1 14 3 16
>7 4 5 2
>9 6 11 8
>15 12 13 10
Но он не магический.

>Так что пандиагональный квадрат размером 6 получить мне видется >невозможным
Прошу читайте посты внимательно, я уже написал что пандиагональных
6 порядка нет, и это не я придумал, а доказано учеными.

>Если у кого-либо интерес я обязвтельно все расскажу, но не сразу, мне нужно >время для осмысления

Depo, на данный момент у меня тоже куча идей, но пока они еще очень “сырые“=)
Вот в помощь:
http://www.geocities.com/~harveyh/downloads.htm
там файлы:
MS4-List-Group.zip, MS4-List-Index.zip
Жаль, но в инете нет русскоязычных ресурсов по магическим квадратам(ну 1-2 и то с натяжкой).Если захотите поближе познакомиться магическими квадратами, то советую использовать Google.
Пока буду писать прогу для проверки всех квадратов 4 порядка.

Ау, кодеры, было бы хорошо если бы кто-нибудь написал библиотеку(dll) для проверки цепочек ПМ. на вход цепочка- на выход true/false хотя бы.
Думаю сначала надо разобраться с квадратами 4 порядка, а 6-го не трогать
пока.
Depo, опиши более подробно в части практического применения такого расклада хлопков.
в чем преимущество такого именно сложения, и при чем здесь квадратная форма.
Я пока не уловил, потому как представляю обычно сложение на шаровой модели,
возможно у тебя вырисовывается другая, поэтому не торопись, излагай как мона подробнее.
мыж никуда не торопимся, исследуем идеи узоров.
Оказалось их много=)
114 из 880
(карты те же использованы:В,Д,К,Т)
Вот:
<<1>>
1,3,14,16
10,13,4,7
15,6,11,2
8,12,5,9
Вп Кп Дч Тч Дб Вч Тп Кк Вб Вк Тб Тк Дп Кб Дк Кч
====================================================
<<2>>
1,4,13,16
14,15,2,3
8,5,12,9
11,10,7,6
Вп Тп Вч Тч Дч Кч Дп Кп Дк Кк Дб Кб Вб Тб Вк Тк
====================================================
<<3>>
1,4,13,16
14,15,2,3
12,9,8,5
7,6,11,10
Вп Тп Вч Тч Дч Кч Дп Кп Дб Кб Дк Кк Вк Тк Вб Тб
====================================================
<<4>>
1,4,13,16
15,14,3,2
8,5,12,9
10,11,6,7
Вп Тп Вч Тч Кч Дч Кп Дп Кк Дк Кб Дб Вб Тб Вк Тк
====================================================
<<5>>
1,4,13,16
15,14,3,2
12,9,8,5
6,7,10,11
Вп Тп Вч Тч Кч Дч Кп Дп Кб Дб Кк Дк Вк Тк Вб Тб
====================================================
<<6>>
1,4,14,15
16,11,5,2
9,6,12,7
8,13,3,10
Вп Тп Дч Кч Тч Кб Вк Дп Дб Кп Вч Тк Кк Тб Дк Вб
====================================================
<<7>>
1,4,15,14
16,10,5,3
9,7,12,6
8,13,2,11
Вп Тп Кч Дч Тч Дб Вк Кп Кб Дп Вч Тк Дк Тб Кк Вб
====================================================
<<8>>
1,5,12,16
10,11,6,7
15,4,13,2
8,14,3,9
Вп Вк Тб Тч Дб Кб Дк Кк Вб Кп Дч Тк Дп Вч Тп Кч
====================================================
<<9>>
1,6,11,16
8,12,5,9
15,3,14,2
10,13,4,7
Вп Дк Кб Тч Тк Тб Вк Вб Кк Тп Вч Дб Дп Дч Кп Кч
====================================================
<<10>>
1,6,11,16
14,15,2,3
12,9,8,5
7,4,13,10
Вп Дк Кб Тч Дч Кч Дп Кп Дб Вч Тп Кк Вк Тк Вб Тб
====================================================
<<11>>
1,7,10,16
8,12,5,9
14,2,15,3
11,13,4,6
Вп Кк Дб Тч Тк Тб Вк Вб Дк Тп Вч Кб Кп Кч Дп Дч
====================================================
<<12>>
1,7,10,16
15,14,3,2
12,9,8,5
6,4,13,11
Вп Кк Дб Тч Кч Дч Кп Дп Кб Вч Тп Дк Вк Тк Вб Тб
====================================================
<<13>>
1,8,13,12
14,11,2,7
4,5,16,9
15,10,3,6
Вп Тк Вч Тб Дч Кб Дп Кк Дк Кп Дб Кч Вб Тч Вк Тп
====================================================
<<14>>
1,8,13,12
15,10,3,6
4,5,16,9
14,11,2,7
Вп Тк Вч Тб Кч Дб Кп Дк Кк Дп Кб Дч Вб Тч Вк Тп
====================================================
<<15>>
1,8,13,12
16,11,2,5
3,6,15,10
14,9,4,7
Вп Тк Вч Тб Тч Кб Дп Вк Кк Тп Вб Дч Дб Кч Дк Кп
====================================================
<<16>>
1,10,7,16
12,8,9,5
15,3,14,2
6,13,4,11
Вп Дб Кк Тч Тб Тк Вб Вк Кб Тп Вч Дк Дп Дч Кп Кч
====================================================
<<17>>
1,10,7,16
14,15,2,3
8,5,12,9
11,4,13,6
Вп Дб Кк Тч Дч Кч Дп Кп Дк Вч Тп Кб Вб Тб Вк Тк
====================================================
<<18>>
1,11,6,16
12,8,9,5
14,2,15,3
7,13,4,10
Вп Кб Дк Тч Тб Тк Вб Вк Дб Тп Вч Кк Кп Кч Дп Дч
====================================================
<<19>>
1,11,6,16
13,14,3,4
12,7,10,5
8,2,15,9
Вп Кб Дк Тч Вч Дч Кп Тп Вб Кч Дп Тк Вк Дб Кк Тб
====================================================
<<20>>
1,11,6,16
15,14,3,2
8,5,12,9
10,4,13,7
Вп Кб Дк Тч Кч Дч Кп Дп Кк Вч Тп Дб Вб Тб Вк Тк
====================================================
<<21>>
1,12,13,8
14,7,2,11
4,9,16,5
15,6,3,10
Вп Тб Вч Тк Дч Кк Дп Кб Дб Кп Дк Кч Вк Тч Вб Тп
====================================================
<<22>>
1,12,13,8
15,6,3,10
4,9,16,5
14,7,2,11
Вп Тб Вч Тк Кч Дк Кп Дб Кб Дп Кк Дч Вк Тч Вб Тп
====================================================
<<23>>
1,12,13,8
15,10,3,6
2,7,14,11
16,5,4,9
Вп Тб Вч Тк Кч Дб Кп Дк Вб Тп Вк Тч Кб Дч Кк Дп
====================================================
<<24>>
1,12,13,8
16,7,2,9
3,10,15,6
14,5,4,11
Вп Тб Вч Тк Тч Кк Дп Вб Кб Тп Вк Дч Дк Кч Дб Кп
====================================================
<<25>>
1,12,13,8
16,9,4,5
2,7,14,11
15,6,3,10
Вп Тб Вч Тк Тч Вб Тп Вк Дб Кп Дк Кч Кб Дч Кк Дп
====================================================
<<26>>
1,13,8,12
16,11,2,5
3,6,15,10
14,4,9,7
Вп Вч Тк Тб Тч Кб Дп Вк Кк Вб Тп Дч Дб Кч Дк Кп
====================================================
<<27>>
1,13,12,8
16,7,2,9
3,10,15,6
14,4,5,11
Вп Вч Тб Тк Тч Кк Дп Вб Кб Вк Тп Дч Дк Кч Дб Кп
====================================================
<<28>>
1,14,4,15
16,11,5,2
9,6,12,7
8,3,13,10
Вп Дч Тп Кч Тч Кб Вк Дп Дб Вч Кп Тк Кк Тб Дк Вб
====================================================
<<29>>
1,15,4,14
16,10,5,3
9,7,12,6
8,2,13,11
Вп Кч Тп Дч Тч Дб Вк Кп Кб Вч Дп Тк Дк Тб Кк Вб
====================================================
<<30>>
2,3,13,16
15,12,6,1
10,5,11,8
7,14,4,9
Дп Кп Вч Тч Кч Тб Дк Вп Вб Тп Дч Кк Тк Кб Вк Дб
====================================================
<<31>>
2,3,14,15
8,16,1,9
11,5,12,6
13,10,7,4
Дп Кп Дч Кч Тк Тч Вп Вб Тп Кк Дб Вч Дк Тб Вк Кб
====================================================
<<32>>
2,3,14,15
11,16,1,6
8,5,12,9
13,10,7,4
Дп Кп Дч Кч Кб Тч Вп Дк Тп Кк Дб Вч Вб Тб Вк Тк
====================================================
<<33>>
2,3,14,15
13,16,1,4
7,6,11,10
12,9,8,5
Дп Кп Дч Кч Вч Тч Вп Тп Вк Тк Вб Тб Дб Кб Дк Кк
====================================================
<<34>>
2,3,14,15
13,16,1,4
11,10,7,6
8,5,12,9
Дп Кп Дч Кч Вч Тч Вп Тп Вб Тб Вк Тк Дк Кк Дб Кб
====================================================
<<35>>
2,3,14,15
16,13,4,1
7,6,11,10
9,12,5,8
Дп Кп Дч Кч Тч Вч Тп Вп Тк Вк Тб Вб Дб Кб Дк Кк
====================================================
<<36>>
2,3,14,15
16,13,4,1
11,10,7,6
5,8,9,12
Дп Кп Дч Кч Тч Вч Тп Вп Тб Вб Тк Вк Дк Кк Дб Кб
====================================================
<<37>>
2,3,16,13
15,9,6,4
10,8,11,5
7,14,1,12
Дп Кп Тч Вч Кч Вб Дк Тп Тб Вп Дч Кк Вк Кб Тк Дб
====================================================
<<38>>
2,5,12,15
7,11,6,10
16,4,13,1
9,14,3,8
Дп Вк Тб Кч Кк Кб Дк Дб Тк Кп Дч Вб Вп Вч Тп Тч
====================================================
<<39>>
2,5,12,15
13,16,1,4
11,10,7,6
8,3,14,9
Дп Вк Тб Кч Вч Тч Вп Тп Вб Дч Кп Тк Дк Кк Дб Кб
====================================================
<<40>>
2,7,14,11
13,10,3,8
4,5,16,9
15,12,1,6
Дп Кк Дч Кб Вч Дб Кп Тк Дк Вп Тб Кч Вб Тч Вк Тп
====================================================
<<41>>
2,7,14,11
13,12,1,8
3,6,15,10
16,9,4,5
Дп Кк Дч Кб Вч Тб Вп Тк Вк Тп Вб Тч Дб Кч Дк Кп
====================================================
<<42>>
2,7,14,11
16,9,4,5
3,6,15,10
13,12,1,8
Дп Кк Дч Кб Тч Вб Тп Вк Тк Вп Тб Вч Дб Кч Дк Кп
====================================================
<<43>>
2,8,9,15
16,13,4,1
11,10,7,6
5,3,14,12
Дп Тк Вб Кч Тч Вч Тп Вп Тб Дч Кп Вк Дк Кк Дб Кб
====================================================
<<44>>
2,9,8,15
11,7,10,6
16,4,13,1
5,14,3,12
Дп Вб Тк Кч Кб Кк Дб Дк Тб Кп Дч Вк Вп Вч Тп Тч
====================================================
<<45>>
2,9,8,15
13,16,1,4
7,6,11,10
12,3,14,5
Дп Вб Тк Кч Вч Тч Вп Тп Вк Дч Кп Тб Дб Кб Дк Кк
====================================================
<<46>>
2,11,14,7
13,6,3,12
4,9,16,5
15,8,1,10
Дп Кб Дч Кк Вч Дк Кп Тб Дб Вп Тк Кч Вк Тч Вб Тп
====================================================
<<47>>
2,11,14,7
13,8,1,12
3,10,15,6
16,5,4,9
Дп Кб Дч Кк Вч Тк Вп Тб Вб Тп Вк Тч Дк Кч Дб Кп
====================================================
<<48>>
2,11,14,7
15,4,5,10
8,13,12,1
9,6,3,16
Дп Кб Дч Кк Кч Тп Вк Дб Тч Кп Дк Вб Вп Тб Вч Тк
====================================================
<<49>>
2,11,14,7
15,10,3,6
1,8,13,12
16,5,4,9
Дп Кб Дч Кк Кч Дб Кп Дк Вб Тп Вк Тч Тб Вч Тк Вп
====================================================
<<50>>
2,11,14,7
16,5,4,9
3,10,15,6
13,8,1,12
Дп Кб Дч Кк Тч Вк Тп Вб Тб Вп Тк Вч Дк Кч Дб Кп
====================================================
<<51>>
2,11,14,7
16,9,4,5
1,8,13,12
15,6,3,10
Дп Кб Дч Кк Тч Вб Тп Вк Дб Кп Дк Кч Тб Вч Тк Вп
====================================================
<<52>>
2,12,5,15
14,13,4,3
11,8,9,6
7,1,16,10
Дп Тб Вк Кч Дч Вч Тп Кп Дб Тч Вп Кк Дк Вб Тк Кб
====================================================
<<53>>
2,12,5,15
16,13,4,1
7,6,11,10
9,3,14,8
Дп Тб Вк Кч Тч Вч Тп Вп Тк Дч Кп Вб Дб Кб Дк Кк
====================================================
<<54>>
2,13,3,16
15,12,6,1
10,5,11,8
7,4,14,9
Дп Вч Кп Тч Кч Тб Дк Вп Вб Дч Тп Кк Тк Кб Вк Дб
====================================================
<<55>>
2,14,11,7
15,4,5,10
8,13,12,1
9,3,6,16
Дп Дч Кб Кк Кч Тп Вк Дб Тч Дк Кп Вб Вп Тб Вч Тк
====================================================
<<56>>
3,2,13,16
14,12,7,1
11,5,10,8
6,15,4,9
Кп Дп Вч Тч Дч Тб Кк Вп Вб Тп Кч Дк Тк Дб Вк Кб
====================================================
<<57>>
3,2,15,14
13,16,1,4
6,7,10,11
12,9,8,5
Кп Дп Кч Дч Вч Тч Вп Тп Вк Тк Вб Тб Кб Дб Кк Дк
====================================================
<<58>>
3,2,15,14
13,16,1,4
10,11,6,7
8,5,12,9
Кп Дп Кч Дч Вч Тч Вп Тп Вб Тб Вк Тк Кк Дк Кб Дб
====================================================
<<59>>
3,2,15,14
16,13,4,1
6,7,10,11
9,12,5,8
Кп Дп Кч Дч Тч Вч Тп Вп Тк Вк Тб Вб Кб Дб Кк Дк
====================================================
<<60>>
3,2,15,14
16,13,4,1
10,11,6,7
5,8,9,12
Кп Дп Кч Дч Тч Вч Тп Вп Тб Вб Тк Вк Кк Дк Кб Дб
====================================================
<<61>>
3,2,16,13
8,15,1,10
9,6,12,7
14,11,5,4
Кп Дп Тч Вч Тк Кч Вп Дб Тп Вк Кб Дч Кк Тб Дк Вб
====================================================
<<62>>
3,2,16,13
14,9,7,4
11,8,10,5
6,15,1,12
Кп Дп Тч Вч Дч Вб Кк Тп Тб Вп Кч Дк Вк Дб Тк Кб
====================================================
<<63>>
3,5,12,14
6,10,7,11
16,4,13,1
9,15,2,8
Кп Вк Тб Дч Дк Дб Кк Кб Тк Дп Кч Вб Вп Вч Тп Тч
====================================================
<<64>>
3,5,12,14
6,11,8,9
15,2,13,4
10,16,1,7
Кп Вк Тб Дч Дк Кб Тк Вб Кк Вп Тч Дб Тп Вч Дп Кч
====================================================
<<65>>
3,5,12,14
13,16,1,4
10,11,6,7
8,2,15,9
Кп Вк Тб Дч Вч Тч Вп Тп Вб Кч Дп Тк Кк Дк Кб Дб
====================================================
<<66>>
3,5,12,14
15,16,1,2
6,9,8,11
10,4,13,7
Кп Вк Тб Дч Кч Тч Вп Дп Кк Вч Тп Дб Кб Тк Вб Дк
====================================================
<<67>>
3,6,15,10
13,8,1,12
4,9,16,5
14,11,2,7
Кп Дк Кч Дб Вч Тк Вп Тб Кк Дп Кб Дч Вк Тч Вб Тп
====================================================
<<68>>
3,6,15,10
13,12,1,8
2,7,14,11
16,9,4,5
Кп Дк Кч Дб Вч Тб Вп Тк Вк Тп Вб Тч Кб Дч Кк Дп
====================================================
<<69>>
3,6,15,10
14,7,2,11
4,9,16,5
13,12,1,8
Кп Дк Кч Дб Дч Кк Дп Кб Тк Вп Тб Вч Вк Тч Вб Тп
====================================================
<<70>>
3,6,15,10
16,9,4,5
2,7,14,11
13,12,1,8
Кп Дк Кч Дб Тч Вб Тп Вк Тк Вп Тб Вч Кб Дч Кк Дп
====================================================
<<71>>
3,6,15,10
16,11,2,5
1,8,13,12
14,9,4,7
Кп Дк Кч Дб Тч Кб Дп Вк Кк Тп Вб Дч Тб Вч Тк Вп
====================================================
<<72>>
3,8,9,14
16,13,4,1
10,11,6,7
5,2,15,12
Кп Тк Вб Дч Тч Вч Тп Вп Тб Кч Дп Вк Кк Дк Кб Дб
====================================================
<<73>>
3,9,8,14
10,6,11,7
16,4,13,1
5,15,2,12
Кп Вб Тк Дч Дб Дк Кб Кк Тб Дп Кч Вк Вп Вч Тп Тч
====================================================
<<74>>
3,9,8,14
10,7,12,5
15,2,13,4
6,16,1,11
Кп Вб Тк Дч Дб Кк Тб Вк Кб Вп Тч Дк Тп Вч Дп Кч
====================================================
<<75>>
3,9,8,14
13,16,1,4
6,7,10,11
12,2,15,5
Кп Вб Тк Дч Вч Тч Вп Тп Вк Кч Дп Тб Кб Дб Кк Дк
====================================================
<<76>>
3,10,7,14
13,4,9,8
12,5,16,1
6,15,2,11
Кп Дб Кк Дч Вч Тп Вб Тк Кб Дп Кч Дк Вп Тч Вк Тб
====================================================
<<77>>
3,10,15,6
13,8,1,12
2,11,14,7
16,5,4,9
Кп Дб Кч Дк Вч Тк Вп Тб Вб Тп Вк Тч Кк Дч Кб Дп
====================================================
<<78>>
3,10,15,6
16,5,4,9
2,11,14,7
13,8,1,12
Кп Дб Кч Дк Тч Вк Тп Вб Тб Вп Тк Вч Кк Дч Кб Дп
====================================================
<<79>>
3,10,15,6
16,7,2,9
1,12,13,8
14,5,4,11
Кп Дб Кч Дк Тч Кк Дп Вб Кб Тп Вк Дч Тк Вч Тб Вп
====================================================
<<80>>
3,12,5,14
16,13,4,1
6,7,10,11
9,2,15,8
Кп Тб Вк Дч Тч Вч Тп Вп Тк Кч Дп Вб Кб Дб Кк Дк
====================================================
<<81>>
3,13,2,16
14,12,7,1
11,5,10,8
6,4,15,9
Кп Вч Дп Тч Дч Тб Кк Вп Вб Кч Тп Дк Тк Дб Вк Кб
====================================================
<<82>>
3,14,7,10
16,4,13,1
9,5,12,8
6,11,2,15
Кп Дч Кк Дб Тч Тп Вч Вп Кч Дп Кб Дк Тк Тб Вк Вб
====================================================
<<83>>
4,1,14,15
13,11,8,2
12,6,9,7
5,16,3,10
Тп Вп Дч Кч Вч Кб Тк Дп Дб Кп Тч Вк Кк Вб Дк Тб
====================================================
<<84>>
4,1,15,14
13,10,8,3
12,7,9,6
5,16,2,11
Тп Вп Кч Дч Вч Дб Тк Кп Кб Дп Тч Вк Дк Вб Кк Тб
====================================================
<<85>>
4,1,16,13
14,15,2,3
5,8,9,12
11,10,7,6
Тп Вп Тч Вч Дч Кч Дп Кп Дк Кк Дб Кб Тб Вб Тк Вк
====================================================
<<86>>
4,1,16,13
14,15,2,3
9,12,5,8
7,6,11,10
Тп Вп Тч Вч Дч Кч Дп Кп Дб Кб Дк Кк Тк Вк Тб Вб
====================================================
<<87>>
4,1,16,13
15,12,5,2
6,7,10,11
9,14,3,8
Тп Вп Тч Вч Кч Тб Вк Дп Тк Кп Дч Вб Кб Дб Кк Дк
====================================================
<<88>>
4,1,16,13
15,14,3,2
5,8,9,12
10,11,6,7
Тп Вп Тч Вч Кч Дч Кп Дп Кк Дк Кб Дб Тб Вб Тк Вк
====================================================
<<89>>
4,1,16,13
15,14,3,2
9,12,5,8
6,7,10,11
Тп Вп Тч Вч Кч Дч Кп Дп Кб Дб Кк Дк Тк Вк Тб Вб
====================================================
<<90>>
4,2,15,13
7,16,1,10
14,11,6,3
9,5,12,8
Тп Дп Кч Вч Кк Тч Вп Дб Тк Тб Вк Вб Кп Дк Кб Дч
====================================================
<<91>>
4,5,12,13
7,16,1,10
14,11,6,3
9,2,15,8
Тп Вк Тб Вч Кк Тч Вп Дб Тк Кч Дп Вб Кп Дк Кб Дч
====================================================
<<92>>
4,5,16,9
13,8,1,12
3,10,15,6
14,11,2,7
Тп Вк Тч Вб Вч Тк Вп Тб Кк Дп Кб Дч Дк Кч Дб Кп
====================================================
<<93>>
4,5,16,9
13,10,3,8
2,7,14,11
15,12,1,6
Тп Вк Тч Вб Вч Дб Кп Тк Дк Вп Тб Кч Кб Дч Кк Дп
====================================================
<<94>>
4,5,16,9
14,7,2,11
3,10,15,6
13,12,1,8
Тп Вк Тч Вб Дч Кк Дп Кб Тк Вп Тб Вч Дк Кч Дб Кп
====================================================
<<95>>
4,5,16,9
14,11,2,7
1,8,13,12
15,10,3,6
Тп Вк Тч Вб Дч Кб Дп Кк Дк Кп Дб Кч Тб Вч Тк Вп
====================================================
<<96>>
4,5,16,9
15,10,3,6
1,8,13,12
14,11,2,7
Тп Вк Тч Вб Кч Дб Кп Дк Кк Дп Кб Дч Тб Вч Тк Вп
====================================================
<<97>>
4,6,11,13
14,15,2,3
9,12,5,8
7,1,16,10
Тп Дк Кб Вч Дч Кч Дп Кп Дб Тч Вп Кк Тк Вк Тб Вб
====================================================
<<98>>
4,6,11,13
16,15,2,1
5,10,7,12
9,3,14,8
Тп Дк Кб Вч Тч Кч Дп Вп Тк Дч Кп Вб Тб Кк Дб Вк
====================================================
<<99>>
4,7,10,13
15,14,3,2
9,12,5,8
6,1,16,11
Тп Кк Дб Вч Кч Дч Кп Дп Кб Тч Вп Дк Тк Вк Тб Вб
====================================================
<<100>>
4,9,8,13
14,3,10,7
11,6,15,2
5,16,1,12
Тп Вб Тк Вч Дч Кп Дб Кк Тб Вп Тч Вк Дп Кч Дк Кб
====================================================
<<101>>
4,9,16,5
11,8,1,14
6,15,10,3
13,2,7,12
Тп Вб Тч Вк Кб Тк Вп Дч Тб Кк Дп Вч Кп Дб Кч Дк
====================================================
<<102>>
4,9,16,5
13,6,3,12
2,11,14,7
15,8,1,10
Тп Вб Тч Вк Вч Дк Кп Тб Дб Вп Тк Кч Кк Дч Кб Дп
====================================================
<<103>>
4,9,16,5
14,7,2,11
1,12,13,8
15,6,3,10
Тп Вб Тч Вк Дч Кк Дп Кб Дб Кп Дк Кч Тк Вч Тб Вп
====================================================
<<104>>
4,9,16,5
15,6,3,10
1,12,13,8
14,7,2,11
Тп Вб Тч Вк Кч Дк Кп Дб Кб Дп Кк Дч Тк Вч Тб Вп
====================================================
<<105>>
4,10,7,13
14,15,2,3
5,8,9,12
11,1,16,6
Тп Дб Кк Вч Дч Кч Дп Кп Дк Тч Вп Кб Тб Вб Тк Вк
====================================================
<<106>>
4,11,6,13
15,14,3,2
5,8,9,12
10,1,16,7
Тп Кб Дк Вч Кч Дч Кп Дп Кк Тч Вп Дб Тб Вб Тк Вк
====================================================
<<107>>
4,13,8,9
15,3,14,2
10,6,11,7
5,12,1,16
Тп Вч Тк Вб Кч Кп Дч Дп Тч Вп Тб Вк Кк Кб Дк Дб
====================================================
<<108>>
5,2,15,12
4,13,8,9
14,3,10,7
11,16,1,6
Вк Дп Кч Тб Тп Вч Тк Вб Дк Вп Тч Кб Кк Дб Кп Дч
====================================================
<<109>>
5,4,13,12
10,7,2,15
8,9,16,1
11,14,3,6
Вк Тп Вч Тб Дб Кк Дп Кч Дк Кп Дч Кб Вп Тч Вб Тк
====================================================
<<110>>
5,4,13,12
11,6,3,14
8,9,16,1
10,15,2,7
Вк Тп Вч Тб Кб Дк Кп Дч Кк Дп Кч Дб Вп Тч Вб Тк
====================================================
<<111>>
6,2,15,11
7,16,1,10
12,13,4,5
9,3,14,8
Дк Дп Кч Кб Кк Тч Вп Дб Тк Дч Кп Вб Вк Тп Вч Тб
====================================================
<<112>>
6,3,14,11
12,5,4,13
7,10,15,2
9,16,1,8
Дк Кп Дч Кб Тб Вк Тп Вч Тк Вп Тч Вб Дп Кч Дб Кк
====================================================
<<113>>
7,2,15,10
12,5,4,13
6,11,14,3
9,16,1,8
Кк Дп Кч Дб Тб Вк Тп Вч Тк Вп Тч Вб Кп Дч Кб Дк
====================================================
<<114>>
7,6,11,10
14,3,2,15
4,13,16,1
9,12,5,8
Кк Дк Кб Дб Дч Кп Дп Кч Тк Вк Тб Вб Вп Тч Вч Тп
====================================================

Вот транзиты для №1:
Вп Кп Дч Тч Дб Вч Тп Кк Вб Вк Тб Тк Дп Кб Дк Кч
P(п,б,к,ч) = {0.03, 0.03, 0.03, 0.03}; F(7)=5:1:4:1:1:3:1
№7:
Вп Тп Кч Дч Тч Дб Вк Кп Кб Дп Вч Тк Дк Тб Кк Вб
P(п,б,к,ч) = {0.03, 0.03, 0.03, 0.03}; F(6)=5:1:4:4:1:1
Из всех пандиагональных квадратов 4 порядка(их 48) “складываются“ 16,
у всех схема транзитов 3:1:1:1:1:1:1:1:1:1:1:1:1:1
>Из всех пандиагональных квадратов 4 порядка(их 48) “складываются“ 16,
>у всех схема транзитов 3:1:1:1:1:1:1:1:1:1:1:1:1:1
Видимо каждый из этих квадратов можно получить вырезав 4х4 из “замощенной плоскости“

gearhead, у тебя в программе вывод квадрата с глюком. Ячейка в 3м столбце 4-ой строки отбражается неверно - повторяет 1 столбец вторую строку. А цепочка записывается правильно, т.е. в массиве ошибки нет. Ошибка только при выводе.
Daedalus, прийдется выдавать всего сразу, и то, что к практике может быть отношения не имеет и то, что мне кажется практичным.
1-е. Я разобрался по какому принципу получаются квадраты с формулой, 3:1:1:1:1:1:1:1:1:1:1:1:1:1 причем любые, даже не магические, gearhead :-)
Во первых, каждый квадрат можно вывеести в двоичном виде. Для квадрата 4х4 нужны 4-ре бита
Поэтому кодировал следующим образом:
1 - 0000
2 - 0001
3 - 0010
4 - 0011
5 - 0100
6 - 0101
7 - 0110
8 - 0111
9 - 1000
10 - 1001
11 - 1010
12 - 1011
13 - 1100
14 - 1101
15 - 1110
16 - 1111

Для пандиагонального квадрата
1 14 4 15
8 11 5 10
13 2 16 3
12 7 9 6
Двоичное представление
0000 1101 0011 1110
0111 1010 0100 1001
1100 0001 1111 0010
1011 0110 1000 0101
Первые два бита (в соответствии с трактовкой) кодируют масть, вторые два бита номинал. Возьмем первые два бита в первой колонке
00
01
11
10
Это так называемый дополнительный код, или код Грея. Каждое последующее значение получено из предыдущего инверсией одного бита. Этот код циклический, т.е. из 10 получаем 00 инверсией и он замыкается.
*Эт ничего, что я все описываю с приводящими в бешенсво подробностями?
Вторая колонка
11
10
00
01 - тоже код Грея (классное словечко, оно мне так нравится)
Код грея видим также в первой строке
хх00 хх01 хх11 хх10
И во всех остальных строках
Теперь чтобы получить куб с заданой формулой прежде, нужно нарисовать “оси“
0000 хх01 хх11 хх10
01хх
11хх
10хх
Вместо хх хх хх задаем 11 00 11
Возможно, существует другая последовательность, но мне кажется только заданная обеспечивает уникальность чисел (не факт)
Дальше достраиваем до квадрата с помощью кода Грея

Если вместо кода грея использовать другую последовательность бит
Пример такой последовательности 00,01,10,11
Квадрат, постороенный по тем же принципам в двоичном виде:
0000 1101 0010 1111
0110 0011 0100 0001
1000 0101 1010 0111
1110 1011 1100 1001
В десятичном:
1 14 3 16
7 4 5 2
9 6 11 8
15 12 13 10
Он, как заметил gearhead не магический, но складывается с формулой 3:1:1:1:1:1:1:1:1:1:1:1:1:1

разобъю материал на несколько частей, это была тока первая часть
Какой практический интерес в хлопках, я его пока что не увидел. Но наверняка какой-нить должен быть )))
2. Дальше я рассматривал двоичные представления разных сходящихся квадратов
1 3 14 16
10 13 4 7
15 6 11 2
8 12 5 9

0000 0010 1101 1111
1001 1100 0011 0110
1110 0101 1010 0001
0111 1011 0100 1000

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

1 3 14 16
7 4 13 10
9 5 12 8
15 6 11 2

0000 0010 1101 1111
0110 0011 1100 1001
1110 0101 1010 0001
1000 0100 1011 0111
Вопрос с направлением считаю не принципиальным, сумма строк и столбцов ведь от этого не меняются, и принцип симметрии сохраняется.
Еще один “сходящийся“ квадрат, записанный в моем направлении обхода
1 4 13 16
3 2 15 14
11 10 7 6
9 12 5 8

0000 0011 1100 1111
0010 0001 1110 1101
1010 1001 0110 0101
1000 1011 0100 0111

Если провести вертикаль в квадратах то правая половина получается инверсией и зеркальным отражением правой половины

Еще квадраты
2 3 13 16
1 6 12 15
7 14 4 9
8 11 5 10

0001 0010 1100 1111
0000 0101 1011 1110
0111 1010 0100 1001
0110 1101 0011 1000

4 1 15 14
3 8 10 13
5 16 2 11
6 9 7 12

0011 0000 1110 1101
0010 0111 1001 1100
0101 1000 0110 1011
0100 1111 0001 1010

В них первые два бита инвертно-зеркальны относительно вертикальной оси, последние два инвертно-зеркальны относительно горизонтальной оси. И ничего в этих свойствах странного нет. Это принцип равновесия - иначе квадрат не будет магическим.
Осталось ответить на вопрос, как часто в жизни события выстраиваются в соответствии с магическим квадратом 8)
Если все-же выстраиваются, то на основе принципа зеркальности всегда можно определить какое событие (или два события) будут знаковыми для достижения определенного результата. Т.е. куда внедрим результат и на что он зеркалится
У меня также вызывает интерес, какие формы симметрии можно заметить в немагических квадратах, хотя вероятно что никакие
>gearhead, у тебя в программе вывод квадрата с глюком. Ячейка в 3м столбце >4-ой строки отбражается неверно - повторяет 1 столбец вторую строку
Глюк найден, пост с квадратами исправлен.

>Я разобрался по какому принципу получаются квадраты с формулой, 3:1:1:1:>1:1:1:1:1:1:1:1:1:1 причем любые, даже не магические, gearhead :-)
Тогда не квадраты, а цепочки. Тогда смысл записывать цепочки в виде квадратов. Хотелось бы сначала разобраться с магическими квадратами и рассмотреть как их магичность отражается в цепочках ПМ. Можно из цепочек строить ромбы, звезды и папаллелепипеды, но это внесет только неопределенность на данный момент(имхо).

>Какой практический интерес в хлопках, я его пока что не увидел. Но
>наверняка какой-нить должен быть )))
Найти применение чему-то найденому бывает сложнее чем наити это(что-то)=)


>У меня также вызывает интерес, какие формы симметрии можно заметить в >немагических квадратах, хотя вероятно что никакие
Интересно изучать геометрические паттерны м. квадратов:
Берешь квадрат, соединяешь его числа отрезками, (1--2--3--4 и т.д.)

>Я не понимаю, почему gearhead взял такое хитрое направление обхода
>квадрата.
Можно еще так: 1-Вп,5-Дп,9-Кп,13-Тп,2-Вк,6-Дк и т.д.
3. Анализ магических квадратов, как вы видели, показывает наличие в них симметрии.
симметрия бывает 3-х: видов относительно вертикальной оси (левая половина соответствует зеркальному отображению правой), относительно горизонтальной оси и комбинированный, когда первая половина двоичного числа зеркалится относительно вертикальной оси, другая относительно горизонтальной.
На самом деле между симметрией первого и второго видов разницы не существует.Доказываю. Обход в квадрате осуществляется змейкой:
434
|||
___
- ___|-2
-|___ -1
- ___|-2
|||
Теперь представим, что змейку распрямили, и полученную цепочу сложили попалам. Место первого перегиба соответствует оси 1. Еще раз согнем, молучим ось 2 и т.д. до оси 4
Предположим в исходном магическом квардате симметричном относительно оси 1 поменяли местами первую и третью строки (суммы не поменяются, хотя ПМ наверное не сложится). Тогда уже симметрия обнаружится оносительно оси 2. Т.е. оси 1 и 2 равнозначны.
В предыдущем посте все квадраты были симметричны относительно центральных осей. Но наверняка найдется сходящийся квадрат с симметрией в осях 2 или 4. Но это утверждение нужно будет еще проверить.
Т.е. симметрия в магических квадратах наблюдается двух видов: относительно осей ПОЛНАЯ СИММЕТРИЯ и ПАРНАЯ СИММЕТРИЯ, когда одни половины числа, скажем все левые, находит недостающую часть относительно одной оси, а все правые относительно другой.
Можно ли найти такой квадрат, который был бы полностью симметричным и не являлся магическим. Я думаю, что нельзя, так как именно свойства симметричности делают квадрат магическим!!!
Если кто читал последнюю разработку Масяни по разницам смежных валентностей в ПМ, тот поймет, что создается конструкция 4х4. Четыре масти и четыре возможных приращения. Т.о. для описания ПМ достаточно квадратов 4х4 - но для описания особого аспекта ПМ, а не всех его граней.
да, но там не так очевидно что это квадраты, я например замэпил их как оси сфер :)
откуда ваще беруцца умники :))
в связи с открывшимися обстоятельствами, надо и впрямь рассмотреть это дело пристальнее.
по поводу программ,
призывы о помощи не катят - вы же сами программеры, в конце концов
описывайте сразу функции которые вам нужно импортировать в свои проги.
возможно это и приведет к общей длл.
вы хоть смотрели дельфовые исходники, в курсе какой текстовый формат ПМ уже сложился.
вообще лучше примеры квадратов в ёкселе рисовать и объяснять.
предлагаю перенести дискуссию в лабораторию.
она сегодня начала работать в тестовом режиме
http://www.dhlab.ru
сделаем отдельный форум по квадратам
только что уработал пм прогу кинул на freesoft стесно ру
алгоритм простой до безобразия собирается за 10 минут от силы и очевиден в проге

воткну исходник но боюсь не влезет весь

если админ сайта раскачается выложит и на аворлде

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
Label20: TLabel;
Label21: TLabel;
Label22: TLabel;
Label23: TLabel;
Label24: TLabel;
Label25: TLabel;
Label26: TLabel;
Label27: TLabel;
Label28: TLabel;
Label29: TLabel;
Label30: TLabel;
Label31: TLabel;
Label32: TLabel;
Label33: TLabel;
Label34: TLabel;
Label35: TLabel;
Label36: TLabel;
targetcard: TListBox;
Button2: TButton;
Memo1: TMemo;
Button4: TButton;
Memo2: TMemo;
Button5: TButton;
Button6: TButton;
Memo3: TMemo;
triggercard: TListBox;
Memo4: TMemo;
Button7: TButton;
combinationtype: TListBox;
Memo5: TMemo;
Button1: TButton;
Memo6: TMemo;
Memo7: TMemo;
Memo8: TMemo;
Memo9: TMemo;
Button3: TButton;
Memo10: TMemo;
Button8: TButton;
Memo11: TMemo;
Memo12: TMemo;
Button9: TButton;
Edit1: TEdit;
Button10: TButton;
Memo0: TMemo;
procedure targetcardClick(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure triggercardClick(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure combinationtypeClick(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button10Click(Sender: TObject);


private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
minimum,maximum:byte; // переменные минимума и максимума ГСЧ
numbercard:byte; // номер карты от 1 до 36
card:string; // номинал карты от Тч до 6п
sc1,sc2,solitairecard1,solitairecard2:string; // сравнение карт
combitype:byte; // тип сочетания


// СОЗДАНИЕ МАССИВА БАЗОВОЙ КОЛОДЫ КАРТ
basiskoloda: array[1..36] of string=
(“Туз Ч“, “Туз Б“,“Туз К“,“Туз П“,“Кор Ч“,“Кор Б“,“Кор К“,
“Кор П“,“Дам Ч“,“Дам Б“,“Дам К“,“Дам П“,“Вал Ч“,“Вал Б“,
“Вал К“,“Вал П“,“10 Ч“,“10 Б“,“10 К“,“10 П“,“9 Ч“,“9 Б“,
“9 К“,“9 П“,“8 Ч“,“8 Б“,“8 К“,“8 П“,“7 Ч“,“7 Б“,“7 К“,“7 П“,
“6 Ч“,“6 Б“,“6 К“,“6 П“);
// массив рабочей колоды
koloda: array[1..36] of string;
// расклад пасьянса на столе
solitaire: array[1..36] of string;
implementation

{$R *.dfm}
// НАБОР ПОДПРОГРАММ
///////////////////////////////////////////////////////////
// начало подпрограммы смены типа совместимости

function changchtype(combitype:byte) :byte;
begin
if combitype=0 then
begin
combitype:=1;
end
else
begin
combitype:=0;
end;
changchtype:=combitype;
end;

// конец подпрограммы смены типа сочетания
////////////////////////////////////////////////////////////
// начало подпрограммы отображения колоды

function KOLODSIMAGE:string;
var a:byte; // переменная внутреннего цикла
checkedcard:string; // проверяемая карта
begin
form1.Memo1.text:=““; // очистка окна колоды
// перебор карт сгенерированной колоды
for a:=36 downto 1 do
begin
checkedcard:=koloda[a];
if checkedcard<>““
then form1.memo1.Lines.Add(koloda[a]);
end;
end;

// конец подпрограммы отображения колоды
////////////////////////////////////////////////////////////
// начало подпрограммы отображения пасьянса

function PASIANSIMAGE:string;
var a:byte; // переменная внутреннего цикла
checkedcard:string; // проверяемая карта
begin
form1.Memo6.text:=““; // очистка окна колоды
// перебор карт сгенерированной колоды
for a:=1 to 36 do
begin
checkedcard:=solitaire[a];
if checkedcard<>““
then form1.memo6.Lines.Add(solitaire[a]);
end;
end;

// конец подпрограммы отображения пасьянса
////////////////////////////////////////////////////////////
// объявление функции генератора целых случайных чисел ГСЧ

function GSCH(minimum,maximum:byte):byte;
var casualnumber,numberrepetition:byte;
begin
// коррекция диапазона ГСЧ
minimum:=minimum-1; maximum:=maximum+1;
// обнуление счётчика количества генераций случайного числа
numberrepetition:=0;
repeat
casualnumber:=random(maximum);
numberrepetition:=numberrepetition+1;
if numberrepetition>250 // максимальное количество повторов генерации
// случайного числа, зависит от типа numberrepetition
then
begin
// Сброс работы программы в случае контроля Будхи
form1.Color:=clblack;
exit;
end
until (casualnumber>minimum); // проверка того что случайное число больше
// заданного минимального значения
GSCH:=casualnumber; // присвоение случайного числа значению функции ГСЧ


end;
// конец подпрограммы ГСЧ
////////////////////////////////////////////////////////////
// начало подпрограммы проверки совместимости 2 карт

function sovmestimost(card1,card2:string;combitype:byte):string;
var s,sc1,sc2:string;
begin

case combitype of
0: // совместимость по масти
begin // начало проверки совместимости по номиналу

sc1:=copy(card1,length(card1),1);
sc2:=copy(card2,length(card2),1);
if sc1<>sc2 then
begin
s:=“no“;
end
else
begin
s:=“yes“;
end;

end; // конец совестимости по масти

1: // совместимость по номиналу
begin// начало проверки совместимости по номиналу
sc1:=copy(card1,1,length(card1)-2);
sc2:=copy(card2,1,length(card2)-2);
if sc1<>sc2 then
begin
s:=“no“;
end
else
begin
s:=“yes“;
end;

end;// конец проверки совместимости по номиналу
else // ветка сбоя
begin
exit;
end;
// запоминание результата совместимости
end;
sovmestimost:=s;
end;

// конец подпрограммы проверки совместимости 2 карт
////////////////////////////////////////////////////////////
// подпрограмма перевода случайного числа в номинал карты

function translittocard(numbercard:byte):string;

begin
case numbercard of
1: card:=“Туз Ч“;
2: card:=“Туз Б“;
3: card:=“Туз К“;
4: card:=“Туз П“;
5: card:=“Кор Ч“;
6: card:=“Кор Б“;
7: card:=“Кор К“;
8: card:=“Кор П“;
9: card:=“Дам Ч“;
10: card:=“Дам Б“;
11: card:=“Дам К“;
12: card:=“Дам П“;
13: card:=“Вал Ч“;
14: card:=“Вал Б“;
15: card:=“Вал К“;
16: card:=“Вал П“;
17: card:=“10 Ч“;
18: card:=“10 Б“;
19: card:=“10 К“;
20: card:=“10 П“;
21: card:=“9 Ч“;
22: card:=“9 Б“;
23: card:=“9 К“;
24: card:=“9 П“;
25: card:=“8 Ч“;
26: card:=“8 Б“;
27: card:=“8 К“;
28: card:=“8 П“;
29: card:=“7 Ч“;
30: card:=“7 Б“;
31: card:=“7 К“;
32: card:=“7 П“;
33: card:=“6 Ч“;
34: card:=“6 Б“;
35: card:=“6 К“;
36: card:=“6 П“;
else card:=“СБОЙ“ // аварийный вывод сообщения о сбое
end;
translittocard:=card;
end;
// конец подпрограммы перевода случайного числа в номинал карты
//////////////////////////////////////////////////////////////////
// выбор целевой карты
procedure TForm1.targetcardClick(Sender: TObject);
begin
// выбор целевой карты

case form1.targetcard.itemindex of
0: form1.label36.Caption:=“Туз Ч“;
1: form1.label36.Caption:=“Туз Б“;
2: form1.label36.Caption:=“Туз К“;
3: form1.label36.Caption:=“Туз П“;
4: form1.label36.Caption:=“Кор Ч“;
5: form1.label36.Caption:=“Кор Б“;
6: form1.label36.Caption:=“Кор К“;
7: form1.label36.Caption:=“Кор П“;
8: form1.label36.Caption:=“Дам Ч“;
9: form1.label36.Caption:=“Дам Б“;
10: form1.label36.Caption:=“Дам К“;
11: form1.label36.Caption:=“Дам П“;
12: form1.label36.Caption:=“Вал Ч“;
13: form1.label36.Caption:=“Вал Б“;
14: form1.label36.Caption:=“Вал К“;
15: form1.label36.Caption:=“Вал П“;
16: form1.label36.Caption:=“10 Ч“;
17: form1.label36.Caption:=“10 Б“;
18: form1.label36.Caption:=“10 К“;
19: form1.label36.Caption:=“10 П“;
20: form1.label36.Caption:=“9 Ч“;
21: form1.label36.Caption:=“9 Б“;
22: form1.label36.Caption:=“9 К“;
23: form1.label36.Caption:=“9 П“;
24: form1.label36.Caption:=“8 Ч“;
25: form1.label36.Caption:=“8 Б“;
26: form1.label36.Caption:=“8 К“;
27: form1.label36.Caption:=“8 П“;
28: form1.label36.Caption:=“7 Ч“;
29: form1.label36.Caption:=“7 Б“;
30: form1.label36.Caption:=“7 К“;
31: form1.label36.Caption:=“7 П“;
32: form1.label36.Caption:=“6 Ч“;
33: form1.label36.Caption:=“6 Б“;
34: form1.label36.Caption:=“6 К“;
35: form1.label36.Caption:=“6 П“;

else
form1.label36.Caption:=“сбой“;
exit;
end;
// конец выбора
form1.Button5.Visible:=true;
end;
// конец подпрограммы задачи целевой карты
////////////////////////////////////////////////////////////
// начало создания перетасованной колоды
procedure TForm1.Button2Click(Sender: TObject);

label rerun; // метка перезапуска
var amount:byte; // счётчик количества сгенерерированных карт
pulledcard:string; // вытащенная карта
pullednumber:byte; // номер вытащенной карты
counter:byte; // номер рассматриваемой карты
begin
form1.Memo1.visible:=true;
for counter:=1 to 36 do
begin
koloda[counter]:=““; // обнуление перетасованной колоды
solitaire[counter]:=““; // обнуление карт пасьянса от предыдущих раскладов
end;
amount:=1; // прицел на первую карту
form1.Memo1.text:=““; // очистка поля сгенированной колоды
// начало цикла генерации колоды
repeat
rerun: // метка перехода на генерацию карты
pullednumber:=GSCH(1,36); // номер сг. карты из баз. колоды
pulledcard:=translittocard(pullednumber); // перевод ном. карты
// сгенерированна карта
for counter:=amount downto 1 do // перебор уже сг. карт
begin // проверка на новизну сг.карты
if pulledcard = koloda[counter] then goto rerun
end;
if koloda[amount] = ““ then
koloda[amount]:=pulledcard
else
koloda[amount+1]:=pulledcard;
amount:=amount+1;
until amount>36;
for counter:=36 downto 1 do
begin
form1.memo1.Lines.Add(koloda[counter]);
// form1.Button2.Visible:=false;
end;
// конец цикла генерации колоды
form1.Button4.Visible:=true; // переход на следующий шаг
form1.Button2.Caption:=“Генерация колоды заново“;
form1.Memo8.Visible:=false;
form1.Memo9.Visible:=true;
end;
// конец создания перетассованной колоды
////////////////////////////////////////////////////////////

procedure TForm1.FormCreate(Sender: TObject);
begin
form1.Button2.Visible:=true;

end;

////////////////////////////////////////////////////////////
procedure TForm1.Button4Click(Sender: TObject);
begin
form1.Button2.Visible:=false;
form1.memo2.Visible:=true;
form1.Button4.Visible:=false;
form1.targetcard.Visible:=true;
form1.memo1.Visible:=false;
form1.memo9.Visible:=false;
end;
////////////////////////////////////////////////////////////
procedure TForm1.Button5Click(Sender: TObject);
var b:byte; // внутренняя переменная цикла
begin

form1.Memo2.Visible:=false;
form1.Memo1.Visible:=true;
form1.Button5.Visible:=false;
form1.memo3.Visible:=true;
form1.targetcard.Visible:=false;
form1.triggercard.Visible:=true;

solitaire[36]:=form1.Label36.Caption; // запоминание целевой карты
for b:=1 to 36 do
begin // начало цикла перебора карт
if koloda[b]=solitaire[36]
then koloda[b]:=““; // забор карты из сгенерированной колоды
end; // конец цикла перебора карт
KOLODSIMAGE; // отображение сгенерированной колоды заново
form1.Memo6.Visible:=true;
pasiansimage;
end;
/////////////////////////////////////////////////////////////
// начало выбора спусковой карты
procedure TForm1.triggercardClick(Sender: TObject);
label stopped;
begin
// выбор спусковой карты

case form1.triggercard.itemindex of
0: form1.label35.Caption:=“Туз Ч“;
1: form1.label35.Caption:=“Туз Б“;
2: form1.label35.Caption:=“Туз К“;
3: form1.label35.Caption:=“Туз П“;
4: form1.label35.Caption:=“Кор Ч“;
5: form1.label35.Caption:=“Кор Б“;
6: form1.label35.Caption:=“Кор К“;
7: form1.label35.Caption:=“Кор П“;
8: form1.label35.Caption:=“Дам Ч“;
9: form1.label35.Caption:=“Дам Б“;
10: form1.label35.Caption:=“Дам К“;
11: form1.label35.Caption:=“Дам П“;
12: form1.label35.Caption:=“Вал Ч“;
13: form1.label35.Caption:=“Вал Б“;
14: form1.label35.Caption:=“Вал К“;
15: form1.label35.Caption:=“Вал П“;
16: form1.label35.Caption:=“10 Ч“;
17: form1.label35.Caption:=“10 Б“;
18: form1.label35.Caption:=“10 К“;
19: form1.label35.Caption:=“10 П“;
20: form1.label35.Caption:=“9 Ч“;
21: form1.label35.Caption:=“9 Б“;
22: form1.label35.Caption:=“9 К“;
23: form1.label35.Caption:=“9 П“;
24: form1.label35.Caption:=“8 Ч“;
25: form1.label35.Caption:=“8 Б“;
26: form1.label35.Caption:=“8 К“;
27: form1.label35.Caption:=“8 П“;
28: form1.label35.Caption:=“7 Ч“;
29: form1.label35.Caption:=“7 Б“;
30: form1.label35.Caption:=“7 К“;
31: form1.label35.Caption:=“7 П“;
32: form1.label35.Caption:=“6 Ч“;
33: form1.label35.Caption:=“6 Б“;
34: form1.label35.Caption:=“6 К“;
35: form1.label35.Caption:=“6 П“;

else
form1.label35.Caption:=“сбой“;
exit;
end;
if form1.label35.Caption=form1.label36.Caption then
begin
form1.label35.Caption:=“нельзя“; form1.Button6.Visible:=false;
goto stopped;
end
else
begin
form1.Button6.Visible:=true;
end;
stopped:
end;
// конец выбора спусковой карты
/////////////////////////////////////////////////////////////
// начало нажатия клавиши “Спусковая карта выбранна далее“
procedure TForm1.Button6Click(Sender: TObject);
label stopped;
var c:byte; // внутренняя переменная цикла
begin
solitaire[36]:=form1.label36.Caption; // запоминание
solitaire[35]:=form1.label35.Caption; // карт пасьянса

if form1.Label35.Caption=“Спуск 35“ then goto stopped;

solitaire[35]:=form1.Label35.Caption; // запоминание целевой карты
for c:=1 to 36 do
begin // начало цикла перебора карт
if koloda[c]=solitaire[35]
then koloda[c]:=““; // забор карты из сгенерированной колоды
end; // конец цикла перебора карт
KOLODSIMAGE; // отображение сгенерированной колоды заново
PASIANSIMAGE;
form1.Button6.Visible:=false;
form1.triggercard.Visible:=false;
form1.memo3.Visible:=false;
form1.memo4.Visible:=true;
form1.combinationtype.Visible:=true;
stopped:
end;
// конец нажатия клавиши “Спусковая карта выбранна далее“
////////////////////////////////////////////////////////////
// начало выбора сочетания 36-ой и 34-ой карты пасьянса
procedure TForm1.combinationtypeClick(Sender: TObject);
begin
combitype:=0; // по умолчанию сочетание пары карт по масти
case form1.combinationtype.itemindex of
0: combitype:=0; // сочетание по масти
1: combitype:=1; // сочетание по номиналу
else

exit;
end; // конец определения выбора пользователем типа сочетания
form1.Button7.Visible:=true;
end;
// конец выбора сочетания 36-ой и 34-ой карты пасьянса
/////////////////////////////////////////////////////////////
// начало нажатия клавиши “Тип сочетания выбранн, далее“
procedure TForm1.Button7Click(Sender: TObject);
begin
form1.combinationtype.Visible:=false;
form1.Memo4.Visible:=false;
form1.Button7.Visible:=false;
form1.memo5.visible:=true;
form1.Button1.Visible:=true;
end;
// конец нажатия клавиши “Тип сочетания выбранн, далее“
/////////////////////////////////////////////////////////////
// начало нажатия клавиши “Генерация траффика“

procedure TForm1.Button1Click(Sender: TObject);
label stopped,rerun1,rerun2,rerun3; // метки окончания и перезапуска
var numersolitairecard:byte; // номер карты в пасьянсе
newcard:string; // новая сгенерированная карта
d,e:longint; // внутренняя переменная цикла
compatibility:string; // совместимость 2 соседних карт пасьянса
nsc,numbercard:byte;
begin
nsc:=36; // устанавливается прицел на последнюю карту траффика
repeat
rerun1: // метка перехода если карта уже выброшенна
nsc:=nsc-2; // переход на следующую карту траффика

if solitaire[nsc]<>““ then goto rerun1; // проверка выброшенна карта или нет

rerun2: // метка генерации новой карты
d:=d+1; // счётчик количества попыток подбора карты
// если карта явно не может подобраться объявление сбоя
if d>2000000000 then
begin // ветка сбоя
form1.Memo7.Visible:=true;
goto stopped;
end;
// смена типа сочетания
combitype:=changchtype(combitype);
numbercard:=GSCH(1,36); // случайный выбор карты из колоды
newcard:=koloda[numbercard]; // запоминание новой карты из колоды

// проверка того, что в колоде эта карта ещё есть
if newcard=““ then goto rerun2; // перезапуск если карта уже взята из колоды

// выяснение совместимости новой карты и соседней карты пасьянса

compatibility:=sovmestimost(newcard,solitaire[nsc+2],combitype);

// если карты несовместимы перезапуск генерации выброса карты из колоды
if compatibility=“no“ then goto rerun2;
// выяснено что карты совместимы
d:=0; // обнуление счётчика попыток
koloda[numbercard]:=““; // изъятие подошедшей карты из колоды
solitaire[nsc]:=newcard; // перенос карты в пасьянс
// переотображение заново колоды
KOLODSIMAGE;
// переотображение заново пасьянса
PASIANSIMAGE;
// смена типа сочетания
combitype:=changchtype(combitype);
// отображение выброшенной карты в пасьянсе на форме
case nsc of
34: form1.label34.Caption:=solitaire[nsc];
32: form1.label32.Caption:=solitaire[nsc];
30: form1.label30.Caption:=solitaire[nsc];
28: form1.label28.Caption:=solitaire[nsc];
26: form1.label26.Caption:=solitaire[nsc];
24: form1.label24.Caption:=solitaire[nsc];
22: form1.label22.Caption:=solitaire[nsc];
20: form1.label20.Caption:=solitaire[nsc];
18: form1.label18.Caption:=solitaire[nsc];
16: form1.label16.Caption:=solitaire[nsc];
14: form1.label14.Caption:=solitaire[nsc];
12: form1.label12.Caption:=solitaire[nsc];
10: form1.label10.Caption:=solitaire[nsc];
8: form1.label8.Caption:=solitaire[nsc];
6: form1.label6.Caption:=solitaire[nsc];
4: form1.label4.Caption:=solitaire[nsc];
2: form1.label2.Caption:=solitaire[nsc];

else
form1.memo7.Visible:=true;
exit;
end; // конец отображения выброшенной карты в пасьянсе

until nsc=2;

form1.button1.visible:=false;
form1.memo5.visible:=false;
form1.memo10.visible:=true;
form1.button3.visible:=true;
stopped:
end;

// конец нажатия клавиши “Генерация траффика“
//////////////////////////////////////////////////////////////
// начало нажатия клавиши “Генерация балласта“
procedure TForm1.Button3Click(Sender: TObject);
label stopped,rerun1,rerun2,rerun3; // метки окончания и перезапуска
var numersolitairecard:byte; // номер карты в пасьянсе
newcard:string; // новая сгенерированная карта
d,e:word; // внутренняя переменная цикла
compatibility:string; // совместимость 2 соседних карт пасьянса
nsc,numbercard:byte;
synhro:string; // показатель синхронизированность
begin
synhro:=“yes“;
combitype:=changchtype(combitype);
d:=0;
nsc:=35; // устанавливается прицел на последнюю карту траффика
repeat
rerun1: // метка перехода если карта уже выброшенна
nsc:=nsc-2; // переход на следующую карту траффика

if solitaire[nsc]<>““ then goto rerun1; // проверка выброшенна карта или нет

rerun2: // метка генерации новой карты
// смена типа сочетания
d:=d+1;
if d>10000 then
// если карта явно не может подобраться объявление сбоя
begin // ветка сбоя
form1.Memo7.Visible:=true;
goto stopped;
end;
combitype:=changchtype(combitype);
numbercard:=GSCH(1,36); // случайный выбор карты из колоды
newcard:=koloda[numbercard]; // запоминание новой карты из колоды

// проверка того, что в колоде эта карта ещё есть
if newcard=““ then goto rerun2; // перезапуск если карта уже взята из колоды

// выяснение совместимости новой карты и соседней карты пасьянса

compatibility:=sovmestimost(newcard,solitaire[nsc+2],combitype);

// если карты несовместимы перезапуск генерации выброса карты из колоды
if (compatibility=“no“) and (d<9000) then goto rerun2;
if d>=9000 then
begin
synhro:=“no“;
end;
// выяснено что карты совместимы
d:=0; // обнуление счётчика попыток
koloda[numbercard]:=““; // изъятие подошедшей карты из колоды
solitaire[nsc]:=newcard; // перенос карты в пасьянс
// переотображение заново колоды
KOLODSIMAGE;
// переотображение заново пасьянса
PASIANSIMAGE;
// смена типа сочетания
combitype:=changchtype(combitype);
// отображение выброшенной карты в пасьянсе на форме
case nsc of
33: form1.label33.Caption:=solitaire[nsc];
31: form1.label31.Caption:=solitaire[nsc];
29: form1.label29.Caption:=solitaire[nsc];
27: form1.label27.Caption:=solitaire[nsc];
25: form1.label25.Caption:=solitaire[nsc];
23: form1.label23.Caption:=solitaire[nsc];
21: form1.label21.Caption:=solitaire[nsc];
19: form1.label19.Caption:=solitaire[nsc];
17: form1.label17.Caption:=solitaire[nsc];
15: form1.label15.Caption:=solitaire[nsc];
13: form1.label13.Caption:=solitaire[nsc];
11: form1.label11.Caption:=solitaire[nsc];
9: form1.label9.Caption:=solitaire[nsc];
7: form1.label7.Caption:=solitaire[nsc];
5: form1.label5.Caption:=solitaire[nsc];
3: form1.label3.Caption:=solitaire[nsc];
1: form1.label1.Caption:=solitaire[nsc];

else
form1.memo7.Visible:=true;
exit;
end; // конец отображения выброшенной карты в пасьянсе

until nsc=1;
form1.Button8.Visible:=true;
form1.button3.visible:=false;
form1.Memo10.Visible:=false;
if synhro=“yes“ then
begin
form1.Memo12.Visible:=true;
end
else
begin
form1.Memo11.Visible:=true;
end;
form1.Edit1.Visible:=true;
form1.Button9.Visible:=true;
stopped:
end;
// конец нажатия клавиши “Генерация балласта“
//////////////////////////////////////////////
// начало нажатия кнопки “Разложить пасьянс заново“
procedure TForm1.Button8Click(Sender: TObject);
var i:byte;
begin
form1.Memo1.Visible:=false;
form1.Memo10.Visible:=false;
form1.Memo11.Visible:=false;
form1.Memo12.Visible:=false;
form1.Memo6.Visible:=false;
form1.button3.Visible:=false;
form1.Button2.Visible:=true;
form1.button8.Visible:=false;
form1.Memo8.Visible:=true;
for i:=1 to 36 do
begin // начало цикла по i
solitaire[i]:=““;
koloda[i]:=““;
end; // конец цикла по i

form1.Label1.Caption:=““;
form1.Label2.Caption:=““;
form1.Label3.Caption:=““;
form1.Label4.Caption:=““;
form1.Label5.Caption:=““;
form1.Label6.Caption:=““;
form1.Label7.Caption:=““;
form1.Label8.Caption:=““;
form1.Label9.Caption:=““;
form1.Label10.Caption:=““;
form1.Label11.Caption:=““;
form1.Label12.Caption:=““;
form1.Label13.Caption:=““;
form1.Label14.Caption:=““;
form1.Label15.Caption:=““;
form1.Label16.Caption:=““;
form1.Label17.Caption:=““;
form1.Label18.Caption:=““;
form1.Label19.Caption:=““;
form1.Label20.Caption:=““;
form1.Label21.Caption:=““;
form1.Label22.Caption:=““;
form1.Label23.Caption:=““;
form1.Label24.Caption:=““;
form1.Label25.Caption:=““;
form1.Label26.Caption:=““;
form1.Label27.Caption:=““;
form1.Label28.Caption:=““;
form1.Label29.Caption:=““;
form1.Label30.Caption:=““;
form1.Label31.Caption:=““;
form1.Label32.Caption:=““;
form1.Label33.Caption:=““;
form1.Label34.Caption:=““;
form1.Label35.Caption:=““;
form1.Label36.Caption:=““;

end;
// начало нажатия кнопки “Разложить пасьянс заново“
/////////////////////////////////////////////////////
// начало нажатия клавиши “Сохранить расклад в файл“
procedure TForm1.Button9Click(Sender: TObject);
var
f: TextFile; // файл
fName: String; // имя файла
i: integer;
begin
fName := Edit1.Text+“.txt“;
AssignFile(f, fName);

Rewrite(f); // открыть для перезаписи

// запись в файл
writeln(f,“ “);
writeln(f,“ пасьянс “Мухи-отдельно, котлеты-отдельно“ “);
writeln(f,“ “);
for i:=0 to Memo6.Lines.Count-1 do // строки нумеруются с нуля
begin

writeln(f,“ “,i+1,“-ая карта - “, Memo6.Lines[i],“ - “);
writeln(f,“-------------------------------------------------------------“);
writeln(f,“ “);
end;

CloseFile(f); // закрыть файл

MessageDlg(“Данные ЗАПИСАНЫ в файл “,mtInformation,[mbOk],0);

end;
// конец нажатия клавиши “Сохранить расклад в файл“
///////////////////////////////////////////////////
// начало нажатия кнопки “справка“
procedure TForm1.Button10Click(Sender: TObject);
begin
if form1.memo0.Visible=false then
begin
form1.memo0.Visible:=true;
end
else
begin
form1.memo0.Visible:=false;
end
end;
// конец нажатия кнопки “справка“
end. // просто оператор конца программы
Другие
АОНы | Разные | Программирование | Сеть

Мухи-отдельно, котлеты-отдельно версия 1.5




Прога позволяет раскладывать сходящийся Пасьянс Медичи. Также по программе можно научиться складывать ПМ самому.




статус: бесплатная последнее обновление: 12.4.2006
размер: 485 Кб
Скачать программу с Ware.ru
Результирующая колода
10k 10b 10p 10c 9p Bc 9b Bb 9c Bk 8p Bp 8k Dp 8b Dk 8c Db 7p Dc 7k Kc 7b Kb 7c Kk 6p Kp 6k Tp 6b Tk 6c Tb 9k Tc

Расклад

10k 10b 10p
10k 10b 10p
splice 10k
10b 10p 10c
10b 10p 10c
splice 10b
10p 10c 9p
10p 10c 9p
splice 10p
10c 9p Bc
10c 9p Bc
splice 10c
9p Bc 9b
9p Bc 9b
splice 9p
Bc 9b Bb
Bc 9b Bb
splice Bc
9b Bb 9c
9b Bb 9c
splice 9b
Bb 9c Bk
Bb 9c Bk
splice Bb
9c Bk 8p
9c Bk 8p
9c Bk 8p Bp
9c Bk 8p
Bk 8p Bp
splice Bk
9c 8p Bp
9c 8p Bp
9c 8p Bp 8k
9c 8p Bp
8p Bp 8k
splice 8p
9c Bp 8k
9c Bp 8k
9c Bp 8k Dp
9c Bp 8k
Bp 8k Dp
splice Bp
9c 8k Dp
9c 8k Dp
9c 8k Dp 8b
9c 8k Dp
8k Dp 8b
splice 8k
9c Dp 8b
9c Dp 8b
9c Dp 8b Dk
9c Dp 8b
Dp 8b Dk
splice Dp
9c 8b Dk
9c 8b Dk
9c 8b Dk 8c
9c 8b Dk
8b Dk 8c
splice 8b
9c Dk 8c
9c Dk 8c
splice 9c
Dk 8c Db
Dk 8c Db
splice Dk
8c Db 7p
8c Db 7p
8c Db 7p Dc
8c Db 7p
Db 7p Dc
splice Db
8c 7p Dc
8c 7p Dc
splice 8c
7p Dc 7k
7p Dc 7k
splice 7p
Dc 7k Kc
Dc 7k Kc
splice Dc
7k Kc 7b
7k Kc 7b
splice 7k
Kc 7b Kb
Kc 7b Kb
splice Kc
7b Kb 7c
7b Kb 7c
splice 7b
Kb 7c Kk
Kb 7c Kk
splice Kb
7c Kk 6p
7c Kk 6p
7c Kk 6p Kp
7c Kk 6p
Kk 6p Kp
splice Kk
7c 6p Kp
7c 6p Kp
7c 6p Kp 6k
7c 6p Kp
6p Kp 6k
splice 6p
7c Kp 6k
7c Kp 6k
7c Kp 6k Tp
7c Kp 6k
Kp 6k Tp
splice Kp
7c 6k Tp
7c 6k Tp
7c 6k Tp 6b
7c 6k Tp
6k Tp 6b
splice 6k
7c Tp 6b
7c Tp 6b
7c Tp 6b Tk
7c Tp 6b
Tp 6b Tk
splice Tp
7c 6b Tk
7c 6b Tk
7c 6b Tk 6c
7c 6b Tk
6b Tk 6c
splice 6b
7c Tk 6c
7c Tk 6c
splice 7c
Tk 6c Tb
Tk 6c Tb
splice Tk
6c Tb 9k
6c Tb 9k
6c Tb 9k Tc
6c Tb 9k
Tb 9k Tc
splice Tb
6c 9k Tc
6c 9k Tc
splice 6c

Пасьянс сошёлся за 1 попыток

было разложено за 3 минуты без программы по алгоритму
gearhead,
не очень понял твоей логики присвоения карт:)

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

Квадрат Меркурия
8 58 59 5 4 62 63 1
49 15 14 52 53 11 10 56
41 23 22 44 48 19 18 45
32 34 38 29 25 35 39 28
40 26 27 37 36 30 31 33
17 47 46 20 21 43 42 24
9 55 54 12 13 51 50 16
64 2 3 61 60 6 7 57

В магических квадратах, которые известны большинству математиков, числа каждой линии, вертикальной и горизонтальной, в сумме дают одинаковый результат. В данном случае 260.
А мне больше “дьявольские квадраты“ нравятся. А “дьявольский“ гиперкуб вообще в детстве был моей любимой игрушкой =)))