日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Python識別璇璣圖中詩的數量

系統 1848 0

Python識別璇璣圖中詩的數量

一、璇璣圖簡介

璇璣圖的讀法有很多,這里我使用七七棋盤格的讀法,在璇璣圖中分離出一個七七棋盤格,如下表

滿
鴿

針對上表所示的七七棋盤格圖,在蘇蕙璇璣圖中,前人們總結了上百種很零碎的讀法,讓普通讀者眼花繚亂。其實,我們可以用一句話就把前人的所有讀法涵蓋了,即,從這個棋盤格的任何一個“交叉結點字”起,沿任何一條線段閱讀,當讀完第4條線段時,一首七言四絕詩就誕生了,同時,該詩反序逆讀后,也是另一首七言四絕詩?。ㄗ?:圖3共有25個“ 交叉結點字 ”,它們分別是:吏、痞、雞、戚、隸、婢、妾、姐、妻、妓、姊、弟、爺、爹、娣、蛇、姨、哥、子、鴿、嫡、娌、鵝、媳、蝎。注2:每個“線段”都由8個漢字連接而成,其中頂端的兩個漢字就是兩個“交叉結點字”)

二、算法實現

我們將上面的表格簡化成一張圖,如下所示:

Python識別璇璣圖中詩的數量_第1張圖片

代碼如下:

            
              
                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  
              
                # 統計出各個節點與哪一些節點直接連接
              
              
            self
              
                .
              
              side 
              
                =
              
              
                [
              
              
                ]
              
              
                ''' 做五個循環,五個點確定四句詩 '''
              
              
                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
              
                (
              
              
                )
              
              
                )
              
              
                )
              
            
          

運行結果

1558419864630


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!??!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 枣强县| 日喀则市| 墨竹工卡县| 东至县| 静安区| 银川市| 高清| 岳池县| 枣庄市| 瑞安市| 昭平县| 普宁市| 石首市| 沙雅县| 隆子县| 日照市| 湟中县| 通许县| 凉山| 邯郸市| 海盐县| 定南县| 南漳县| 台湾省| 达拉特旗| 定安县| 西峡县| 雅安市| 阳信县| 漠河县| 隆德县| 岳池县| 栖霞市| 曲阳县| 阿瓦提县| 台东市| 宝兴县| 灵川县| 通化县| 武威市| 涪陵区|