Python識別璇璣圖中詩的數(shù)量
一、璇璣圖簡介
璇璣圖的讀法有很多,這里我使用七七棋盤格的讀法,在璇璣圖中分離出一個七七棋盤格,如下表
吏 | 官 | 同 | 流 | 污 | 合 | 玩 | 痞 | 悍 | 蒙 | 騙 | 造 | 假 | 蛋 | 雞 | 宴 | 請 | 客 | 友 | 朋 | 遠(yuǎn) | 戚 | 偏 | 正 | 反 | 撥 | 亂 | 冤 | 隸 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
奸 | 貪 | 險 | 冠 | 眷 | 閹 | 佃 | ||||||||||||||||||||||
味 | 道 | 人 | 味 | 愛 | 公 | 荒 | ||||||||||||||||||||||
投 | 背 | 渣 | 辣 | 寵 | 豬 | 田 | ||||||||||||||||||||||
臭 | 終 | 滅 | 麻 | 姬 | 汗 | 地 | ||||||||||||||||||||||
相 | 誠 | 明 | 香 | 美 | 血 | 天 | ||||||||||||||||||||||
爛 | 儉 | 賢 | 饞 | 甜 | 粘 | 寒 | ||||||||||||||||||||||
妓 | 賤 | 貧 | 苦 | 斷 | 禮 | 謙 | 妻 | 仙 | 女 | 桃 | 花 | 妹 | 嫣 | 姐 | 懶 | 惰 | 豬 | 狗 | 低 | 賤 | 妾 | 酸 | 流 | 淚 | 目 | 滿 | 慘 | 婢 |
慘 | 妍 | 淡 | 廉 | 奸 | 艷 | 難 | ||||||||||||||||||||||
敗 | 羞 | 雅 | 美 | 猴 | 心 | 家 | ||||||||||||||||||||||
花 | 月 | 和 | 勤 | 狐 | 嘴 | 破 | ||||||||||||||||||||||
佛 | 花 | 溫 | 耕 | 鬼 | 手 | 顏 | ||||||||||||||||||||||
心 | 閉 | 嫻 | 潔 | 神 | 眼 | 搶 | ||||||||||||||||||||||
虔 | 靦 | 恬 | 儉 | 歡 | 饞 | 歡 | ||||||||||||||||||||||
姊 | 儉 | 食 | 衣 | 胖 | 兄 | 短 | 弟 | 閑 | 柳 | 細(xì) | 云 | 風(fēng) | 謙 | 爺 | 叛 | 雷 | 鳴 | 閃 | 電 | 悍 | 爹 | 嚴(yán) | 管 | 制 | 規(guī) | 家 | 善 | 娣 |
善 | 安 | 癱 | 憨 | 煩 | 喘 | 謙 | ||||||||||||||||||||||
慈 | 龍 | 身 | 貓 | 厭 | 呼 | 戴 | ||||||||||||||||||||||
貓 | 虎 | 軟 | 熊 | 瘋 | 吸 | 佩 | ||||||||||||||||||||||
封 | 凰 | 心 | 仔 | 野 | 胸 | 寶 | ||||||||||||||||||||||
擋 | 鳳 | 腸 | 免 | 狂 | 肺 | 劍 | ||||||||||||||||||||||
欄 | 健 | 忐 | 變 | 癲 | 慘 | 短 | ||||||||||||||||||||||
鴿 | 館 | 舍 | 棄 | 反 | 姑 | 叛 | 子 | 賢 | 方 | 圓 | 規(guī) | 法 | 嚴(yán) | 哥 | 貪 | 仁 | 義 | 德 | 道 | 善 | 姨 | 殘 | 心 | 狠 | 斷 | 斬 | 彎 | 蛇 |
店 | 犬 | 廉 | 燦 | 侃 | 怨 | 癍 | ||||||||||||||||||||||
虧 | 懼 | 母 | 姐 | 伴 | 解 | 布 | ||||||||||||||||||||||
盈 | 貓 | 慈 | 艷 | 舞 | 化 | 衣 | ||||||||||||||||||||||
叔 | 女 | 愛 | 戲 | 刀 | 利 | 縫 | ||||||||||||||||||||||
舅 | 弱 | 君 | 龍 | 斬 | 讓 | 勤 | ||||||||||||||||||||||
亂 | 軟 | 侃 | 潭 | 尖 | 謙 | 儉 | ||||||||||||||||||||||
嫡 | 遠(yuǎn) | 親 | 疏 | 羞 | 伯 | 讒 | 娌 | 蠻 | 父 | 鬼 | 通 | 神 | 仙 | 鵝 | 卵 | 潔 | 石 | 藏 | 隱 | 山 | 蝎 | 患 | 病 | 痛 | 寒 | 門 | 艷 | 媳 |
針對上表所示的七七棋盤格圖,在蘇蕙璇璣圖中,前人們總結(jié)了上百種很零碎的讀法,讓普通讀者眼花繚亂。其實,我們可以用一句話就把前人的所有讀法涵蓋了,即,從這個棋盤格的任何一個“交叉結(jié)點字”起,沿任何一條線段閱讀,當(dāng)讀完第4條線段時,一首七言四絕詩就誕生了,同時,該詩反序逆讀后,也是另一首七言四絕詩!(注1:圖3共有25個“ 交叉結(jié)點字 ”,它們分別是:吏、痞、雞、戚、隸、婢、妾、姐、妻、妓、姊、弟、爺、爹、娣、蛇、姨、哥、子、鴿、嫡、娌、鵝、媳、蝎。注2:每個“線段”都由8個漢字連接而成,其中頂端的兩個漢字就是兩個“交叉結(jié)點字”)
二、算法實現(xiàn)
我們將上面的表格簡化成一張圖,如下所示:
代碼如下:
class
Gragh
(
)
:
def
__init__
(
self
,
nodes
,
sides
)
:
''' nodes 表示點 sides 表示邊 '''
# self.sequense是字典,key是點,value是與key相連接的點
self
.
sequense
=
{
}
# self.side是臨時變量,主要用于保存與指定點相連接的點
self
.
side
=
[
]
for
node
in
nodes
:
for
side
in
sides
:
u
,
v
=
side
# 指定點與另一個點在同一個邊中,則說明這個點與指定點是相連接的點,則需要將這個點放到self.side中
if
node
==
u
:
self
.
side
.
append
(
v
)
elif
node
==
v
:
self
.
side
.
append
(
u
)
self
.
sequense
[
node
]
=
self
.
side
# 統(tǒng)計出各個節(jié)點與哪一些節(jié)點直接連接
self
.
side
=
[
]
''' 做五個循環(huán),五個點確定四句詩 '''
def
search
(
self
)
:
res
=
[
]
for
i
in
range
(
1
,
26
)
:
for
j
in
self
.
sequense
[
i
]
:
for
k
in
self
.
sequense
[
j
]
:
if
k
!=
i
:
for
z
in
self
.
sequense
[
k
]
:
if
z
!=
j
:
for
y
in
self
.
sequense
[
z
]
:
if
y
!=
k
:
a
=
[
i
,
j
,
k
,
z
,
y
]
if
a
not
in
res
:
res
.
append
(
a
)
return
res
if
__name__
==
"__main__"
:
nodes
=
[
i
+
1
for
i
in
range
(
25
)
]
sides
=
[
(
1
,
2
)
,
(
2
,
3
)
,
(
3
,
4
)
,
(
4
,
5
)
,
(
1
,
6
)
,
(
1
,
7
)
,
(
2
,
7
)
,
(
3
,
8
)
,
(
4
,
9
)
,
(
5
,
10
)
,
(
5
,
9
)
,
(
6
,
7
)
,
(
7
,
8
)
,
(
8
,
9
)
,
(
9
,
10
)
,
(
6
,
11
)
,
(
7
,
12
)
,
(
7
,
13
)
,
(
8
,
13
)
,
(
9
,
13
)
,
(
9
,
14
)
,
(
10
,
15
)
,
(
11
,
12
)
,
(
12
,
13
)
,
(
13
,
14
)
,
(
14
,
15
)
,
(
11
,
16
)
,
(
12
,
17
)
,
(
13
,
18
)
,
(
13
,
17
)
,
(
13
,
19
)
,
(
14
,
19
)
,
(
15
,
20
)
,
(
16
,
17
)
,
(
17
,
18
)
,
(
18
,
19
)
,
(
19
,
20
)
,
(
16
,
21
)
,
(
17
,
21
)
,
(
17
,
22
)
,
(
18
,
23
)
,
(
19
,
24
)
,
(
19
,
25
)
,
(
20
,
25
)
,
(
21
,
22
)
,
(
22
,
23
)
,
(
23
,
24
)
,
(
24
,
25
)
]
G
=
Gragh
(
nodes
,
sides
)
print
(
len
(
G
.
search
(
)
)
)
運行結(jié)果
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
