Python识别璇玑图中诗的数量

一、璇玑图简介

璇玑图的读法有很多,这里我使用七七棋盘格的读法,在璇玑图中分离出一个七七棋盘格,如下表

针对上表所示的七七棋盘格图,在苏蕙璇玑图中,前人们总结了上百种很零碎的读法,让普通读者眼花缭乱。其实,我们可以用一句话就把前人的所有读法涵盖了,即,从这个棋盘格的任何一个“交叉结点字”起,沿任何一条线段阅读,当读完第4条线段时,一首七言四绝诗就诞生了,同时,该诗反序逆读后,也是另一首七言四绝诗!(注1:图3共有25个“交叉结点字”,它们分别是:吏、痞、鸡、戚、隶、婢、妾、姐、妻、妓、姊、弟、爷、爹、娣、蛇、姨、哥、子、鸽、嫡、娌、鹅、媳、蝎。注2:每个“线段”都由8个汉字连接而成,其中顶端的两个汉字就是两个“交叉结点字”)

二、算法实现

我们将上面的表格简化成一张图,如下所示:

代码如下:

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 resif __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()))

运行结果

Python识别璇玑图中诗的数量相关推荐

  1. 【Pytorch神经网络实战案例】08 识别黑白图中的服装图案(Fashion-MNIST)

    1 Fashion-MNIST简介 FashionMNIST 是一个替代 MNIST 手写数字集 的图像数据集. 它是由 Zalando(一家德国的时尚科技公司)旗下的研究部门提供.其涵盖了来自 10 ...

  2. python遍历文本文件统计字符个数_用python获取txt文件中关键字的数量

    缘起: 开发人员需要tomcat中一个项目在一个月的访问请求量,因其他原因只剩下查找tomcat请求日志的方法获取,刚好最近在学习python,于是就用python摸索了下: 大体思路: 1.把相应t ...

  3. Python实现统计文本中各单词数量

    Python实现统计文本中各单词数量 代码 运行结果 代码 import strings = 'not talk,not helo show me your code hello helo' for ...

  4. php户型图识别,买房必看!一分钟学会如何识别户型图中隐藏的猫腻

    乐山房产/讯  户型图是房屋的平面空间布局图,简单的讲,就是用平面的方式把房屋的结构.格局以及尺寸画下来,使人更直观的了解房屋的走向布局.买房子有句常用语是"行不行,看户型",可想 ...

  5. Python识别表格图_使用Python究竟可以做什么?下面是Python的3个主要应用

    原文传送门: https://medium.com/free-code-camp/what-can-you-do-with-python-the-3-main-applications-518db9a ...

  6. python软件长什么样图片_听说各大网站的色情图片识别都是用的这个程序?Python识别色情图...

    2.2 程序原理 本程序根据颜色(肤色)找出图片中皮肤的区域,然后通过一些条件判断是否为色情图片. 程序的关键步骤如下: HSV 颜色模式 h > 0 and h < 35 and s & ...

  7. python找出图中所有闭合环_这可能是史上最全的 Python 算法集(建议收藏)

    △蓝字可关注并标星 -数据分析展示就用DataHunter- 导读:本文是一些机器人算法(特别是自动导航算法)的Python代码合集.其主要特点有以下三点: 选择了在实践中广泛应用的算法: 依赖最少: ...

  8. python找出图中所有闭合环_求图中的所有闭合环

    NetworkX是一个流行的Python包,用于处理许多科学Python发行版中包含的图形.它包括一些计算图圈的算法.尤其是,^{}会回答你的问题.在 这种方法的一个警告是必须将图转换为有向图.这意味 ...

  9. python 绘图 实现图中为字体添加下标、上标

    python 在绘图添加图例时,一些数学符号或者公式常常包含上标和下标,这里简单描述了如何实现上述要求. 在数学公式中,上标用^号,下标用_符号. 如果上下标只有一个符号,则可以不用花括号括起来. 如 ...

最新文章

  1. python 自动填充表单,如何在Django / Python中自动填充PDF表单?
  2. linux shell touch更新文件时间
  3. a律13折线pcm编码例题_a律13折线pcm编码例题
  4. Java命令行界面(第12部分):CLAJR
  5. 记对一个key file crackme的破解
  6. 大佬分享:程序员必知的干货
  7. VMware 虚拟机如何连接网络,且远程可连接
  8. PyTorch-Transformers:一款可处理最先进NLP的惊人模型库
  9. WinError 126 asmjit.dll or one of its dependencies.
  10. 买到春节回家的票了吗?用Python刷票,还不快来试试!(建议收藏) 为回家做准备...
  11. office2016安装mathtype7.4教程
  12. Oracle触发器原理、创建、修改、删除
  13. 传说中开场晕过去一千多人的迈克杰克逊演唱会,有生之年请看下这个视频
  14. form表单提交后,2次刷新问题记录
  15. 数字电路3(逻辑函数的卡诺图化简法)
  16. UnityShader(四)基础光照
  17. 桂电七院数据结构实验报告一
  18. OSPF虚链接的基本配置
  19. deg怎么读_deg是什么意思_deg怎么读_deg翻译_用法_发音_词组_同反义词_degree(s) 度-新东方在线英语词典...
  20. webpack——JS模块化说明视频-张晓飞-专题视频课程

热门文章

  1. ext4 文件系统的特点、优缺点以及使用场景
  2. Java秒杀系统实战系列~JMeter压力测试重现秒杀场景中超卖等问题
  3. NO2/*学习记录*/--模仿百度首页(纯HTML+css)
  4. jenkins post steps设置记录
  5. c语言实现哈夫曼树的创建与中序遍历以及哈夫曼编码(附详细代码)
  6. SpringBoot + Spring Security Oauth2 客户端授权
  7. MG-SOFT 导入MIB文件
  8. 恶意软件与反病毒技术
  9. 【转载】JVM能够开启多少线程
  10. 学会思考(转一位辩友的书单)