위의 5x5 한자 행렬을 관찰하십시오. 가로로 읽으면 다섯 개의 다른 시에서 다섯 줄로 구성되고, 세로로 읽으면 정확히 같은 줄로 구성됩니다. 나는 그것을 한시의 마방진이라고 부릅니다. - 당나라 시집 전체 에서 287,000행 이상을 검색하여 그러한 세트 2개를 발견했습니다. gcc -O3 mgsq5.c; ./a.out
실행하여 결과를 재현할 수 있습니다.
風月清江夜
月出夜山深
清夜方歸來
江山歸謝客
夜深來客稀
여러분, 이 25글자를 보세요. 세로로 읽으면 다섯 줄의 시와 같고, 가로로 읽으면 이 다섯 줄의 시와 같습니다. 각각은 유명한 당나라 시인이 썼습니다. Lu Zhaolin의시는 바람이 잘 통하는 밤에 Lu Zhaolin이 썼고, Zhang Hu의시는 Taibai, Gao Shi 및 Zhang이 쓴 시입니다. Ji는 Taibai, Gao Shi 및 Zhang Ji가 맑은 밤에, 밤에는 깊은 산과 강에서 썼습니다. Luo가 책을 출판하고 9, Zongheng 및 15까지 세었다는 소식을 들었습니다. 이 시에 나오는 뤄슈가 아닌가? 그러므로 이름은 Tang Poetry Fantasy Prescription입니다. 과거 두타오의 아내는 현기화였고, 소보유의 아내는 접시에 시를 썼다. 재능이 부족해서 책을 쓰고 당시를 뒤져 구했습니다. 보고 또 보고 너무 멋있다는 생각이 들어서 다들 웃을 수 있게 공개하게 됐어요.
당나라 전체를 통틀어 다섯 글자로 된 28만7천개의 문장이 마방진이라고 할 수 있는 유일한 것이다. 그 중 하나에 적합합니다. 다른 두 문장의 문장은 종종 단조롭고 반복적이며 다음과 같이 흥미롭지 않습니다.
心如七十人
如何十年間
七十未成事
十年成底事
人間事事慵
처음 두 문장은 Bai Letian의 문장이고, 다음은 Yao He, Li Changfu 및 Li Shanfu의 문장입니다. 이 다섯 글자 외에도 다섯 글자 환상 공식은 복구가 불가능하고, 세 글자 환상 공식은 무수히 많습니다. 하나 또는 두 개의 우아한 체인을 살펴보겠습니다.
拂秋水
秋夜長
水長東
그는 Ren Hua, Bai Juyi 및 Li Yu에 의해 임명되었습니다.
惜春心
春歌斷
心斷絕
Zhong Fu와 Li Xun이 나왔을 때 Lu Tong도 나왔습니다. 나머지는 녹음됩니다.
7자 마법 공식은 5자 마법 공식보다 훨씬 더 어렵습니다. 당나라 전체에 135,600개의 문장이 있는데, 그 중 단 한 개도 발견되지 않았습니다. 그러므로 관용은 하되 4문장과 1, 3, 5, 7단어로 제한한다. 수입은 엄청납니다. 운율과 리듬, 그리고 매끄러운 논리가 어울리는 운율을 선택한다면 신선할 것입니다. 무엇? 2~4개의 문장이 운율을 맞추려면 마지막 문장의 3~7자가 운율이 같아야 하는데, 이는 소운의 8가지 문제 중 하나이므로 당나라 사람들은 자주 하지 않았다.
7자로 된 절구의 첫 번째 문장은 운율에 맞지 않습니다.
長江九派人歸少
江 曲 面 年
九曲寒波不溯流
派 波 知 落
人面不知何處在
歸 溯 處 并
少年流落在并州
세로로 읽어보고 가로로 읽어보세요. Huangfu Ran, Li Yu, Cui Hu 및 Xue Neng이 나왔습니다. 처음 두 문장, 하나는 양쯔강에 대해 이야기하고 다른 하나는 황하에 대해 이야기하는 것은 부적절해 보입니다. 마지막 두 문장은 그 이유를 지적합니다. Hu는 두 곳에서 발견되었지만 찾을 수 없어서 Bingzhou에 살고 있었습니다! 그것도 너무 웃겨서 웃을 만하다.
아직 나머지를 읽을 수 있는 독자도 있고, 병으로 몸이 굽은 사람도 있고, 중병에 걸린 사람도 있지만 모두 여기에 기록되어 있다.
내가 사용하는 프로그램은 다음과 같이 gcc로 컴파일해야 합니다.
gcc -O3 mgsq5.c -o mgsq5
다시 실행하면 다음과 같은 5자리 마법 공식을 얻을 수 있습니다.
./mgsq5
텍스트 경로와 시작 및 끝 줄 번호를 사용할 수도 있습니다.
./mgsq5 5.txt 0 10000
칠자마법 처방에도 동일하게 적용됩니다.
gcc -O3 mgsq7.c -o mgsq7 ;
./mgsq7
그러나 이득이 없어야 하며, 모든 당시(唐歌)에 포함되어 있지는 않다. 앞서 언급한 은혜를 물러서서 구하는 공식은 다음과 같습니다.
gcc -O3 mgsq7x.c -o mgsq7x ;
./mgsq7x
처음에는 팔황의 방법을 이용하여 당시의 주법을 찾고자 했습니다. 그러나 25개의 문자 각각은 5,000개 이상의 단어로 채워질 수 있습니다. 비록 경험적 방법을 사용하여 도움을 주지만 결과는 끝이 없으며 결과는 기대되지 않습니다. 잘 생각해 보세요. 왜일까요? 가지치기에는 아직 이르지 않다. 또는 첫 번째 단어를 채우는 것이 패션에서는 허용되지만 마지막 단어를 사용하는 것은 실제로 어두운 방법이지만 절차가 불분명하고 재귀가 작동하지 않습니다. Yu Sicheng은 매우 번거롭고 한 줄씩 격렬하게 검색하는 것만 큼 쉽지 않습니다. 폭력적이라고는 하지만 해시세트에는 1~4개의 문자 접두어도 저장되어 있다. 각 가로 방향으로 몇 개의 행을 가져온 다음 테이블에 세로로 5개의 열을 나열합니다. 또한, 정사각형 배열은 대각선 대칭이어야 합니다. 그렇지 않으면 폐기해야 합니다. 저는 C언어로 작성했는데 이해하는데 시간이 조금 걸렸습니다.
나는 알고리즘에도 전혀 쓸모가 없고, 시를 공부하는 데에도 전혀 쓸모가 없습니다. 그러므로 자신이 생각하는 것이 최선이 아닐 수도 있고, 방법이 빠르지 않을 수도 있습니다. 혹시 좋은 아이디어가 있으시면 듣고 싶습니다.