七巧板涂色算法(Python)
描述:有如图所示的七巧板,试编写算法,使用至多4种不同颜色对七巧板进行涂色(每块七巧板一种颜色),要求相邻区域的颜色互不相同,打印输出所有可能的涂色方案。
测试:结果
[1, 2, 1, 3, 2, 1, 4]
[1, 2, 1, 3, 2, 4, 4]
...
[4, 3, 4, 2, 3, 1, 1]
[4, 3, 4, 2, 3, 4, 1]
产生的总次数:672
class A:def __init__(self, sum = 0):self.sum = sumdef add(self):self.sum = self.sum + 1def print(self):print("产生的总次数:{}".format(self.sum))#检查第i块七巧板放第j种颜色是否冲突
def check(i,j):for k in range(0,i):#第i块和第k块七巧板相连,且第k块颜色为第j种颜色if (1==data[i][k] and v[k] == j):return Falsek = k+1return Truesum = A()
def printSolution():print(v)sum.add()def search(i):if i == 7:printSolution()else:for j in range(1,5):if(check(i,j)):v.append(j)search(i+1)v.pop()v = []
data=[[0,1,0,0,1,0,1],[1,0,0,1,0,1,0],[0,0,0,1,0,0,1],[0,1,1,0,0,1,1],
[1,0,0,0,0,0,1],[0,1,0,1,0,0,0],[1,0,1,1,1,0,0]]if __name__ == '__main__':search(0)sum.print()
参考自七巧板设计算法 (C++版)
七巧板涂色算法(Python)相关推荐
- C++实现骰子涂色算法
1.骰子涂色算法要求 输入两个骰子,判断两个骰子是否等价,每个骰子用6个字母表示,例如 123456, 顺序为上前左右后下. 2.思路 任取一个面让其位于正前( 总共6个面),然后转动上下左右四个面( ...
- 图的遍历算法-七巧板涂色
有如图所示的七巧板,试设计算法,使用至多4种不同的颜色对七巧板进行涂色(每块涂一种颜色),要求相邻区域的颜色互不相同,打印输出所有可能的涂色方案. 算法设计: 1.使用邻接矩阵表示七巧板的相邻情况 2 ...
- 【教学类-28-01】AB型图案排序涂色手工-python 学具(中班:偏美术和数学)
效果展示 背景需求 1.纸张不够,缩小学具的面积 最近Python纸类学具用的频率高,主任给我的打印废纸都用光了o(╥﹏╥)o. 因此只能节省空间,设计一页A4的内容两个孩子用. 2.AB排序,永恒的 ...
- OpenCV(一)图像读取与新建、图像显示、操作图像像素(2种涂色并比较算法优劣、输出RGB)
目录 一.读取图像与新建图像 1.读取图像 2.新建图像 二.显示图像 1.过程 2.代码 3.运行效果 三.操作图像像素 1.逐RGB涂色(单循环)(快) 1-1.过程 2-2.代码 2-3.运行结 ...
- 【数据结构与算法】之给Nx3网格图涂色的方案数的求解算法
一.题目要求 你有一个 n x 3 的网格图 grid ,你需要用 红,黄,绿 三种颜色之一给每一个格子上色,且确保相邻格子颜色不同(也就是有相同水平边或者垂直边的格子颜色不同). 给你网格图的行数 ...
- 【算法•日更•第三十期】区间动态规划:洛谷P4170 [CQOI2007]涂色题解
废话不多说,直接上题: P4170 [CQOI2007]涂色 题目描述 假设你有一条长度为5的木版,初始时没有涂过任何颜色.你希望把它的5个单位长度分别涂上红.绿.蓝.绿.红色,用一个长度为5的字符 ...
- 算法学习 区间dp 涂色PAINT
题目链接: 牛客网 涂色PAINT 这是一道区间dp题,题目有小错误,字符串的长度不是5,而是小于1005的长度. 定义:f[i][j] 为区间[i,j]需要涂色最少的次数 我们可以发现这样一件事:我 ...
- python怎么涂颜色_涂色问题(Python)
题目:将一个圆形等分成N个小扇形,将这些扇形标记为1,2,3,-,N.现在使用M种颜色对每个扇形进行涂色,每个扇形涂一种颜色,且相邻的扇形颜色不同,问有多少种不同的涂法?(N≥1,M≥3) 递归解决: ...
- BZOJ 1260:[CQOI2007]涂色paint
(⊙o⊙)-,常规课考试又炸了!目测此次我要完蛋了... 又玩脱了,考数学的时候装B装大了! 算了,先进入正题... 题目描述: Description 假设你有一条长度为5的木版,初始时没有涂过任何 ...
最新文章
- ISA三向外围网络模板说明
- python基础教程3-Python基础教程(三)
- sqlplus -prelim,sqplus区别
- hdu1010深搜+奇偶剪枝
- html编写气泡对话框,HTML+CSS入门 纯CSS手写圆角气泡对话框
- 怎样快速读完一本网络小说
- 那一天,那一月,那一年,那一世,那一瞬
- MySQL与Oracle的语法区别详细对比 (转)
- wc 统计文件字节数、字符数、单词数
- Unicode 汉字内码表
- 根据图片原型写一个html页面,如何分分钟开发高保真交互原型_html/css_WEB-ITnose
- JQuery Ajax使用FormData对象上传文件 图片
- formate在python_python的format方法
- 如何快速自动生成并定制报表
- telnet -测试端口号
- 判断三点顺序(顺时针或者逆时针)(模板)
- 读取数据 python
- 文献管理软件Endnote X9入门使用
- 不可抗力与不可抗拒的因素的区别
- C#在Win 7/8/10 OS下删除HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB子项
热门文章
- python 3爬取 12306余票
- linux安装Oracle 11g详解
- 基于SL773-2018计算土壤流失量的Python实现
- 业务需求近期准备深度学习下SpringCloud为加深印象提高学习效果故做此笔记以备后面复习查看之用
- 巴菲特旗下公司持有470亿美元苹果股票 他用的却是20美元的三星翻盖机
- VLC打不开视频文件调试技巧
- 出错记录:Error: package or namespace load failed for ‘DESeq2’:没有这个DLL ‘BiocParallel’:是不是没有为此架构安装?
- 单片机开发---ESP32S3移植NES模拟器(二)
- 商务办公软件应用与实践【3】
- 信息泛滥,抽奖集赞:微信如何扼杀了用户的独立和自由