30L,17L,13L容器分油,python递归,深度优先算法
伪代码:
全部代码:
a=[] b=[] def f(x,y,z): b.append([x,y,z]) if x==15 and y==15: print(x,y,z) i=0; for x in b: print(i,x,end="\n") i+=1 exit() if [x,y,z] not in a: a.append([x,y,z]) else: b.pop() return y1,y2,y3=30-x,17-y,13-z xt,yt,zt = 0,0,0 # way1: if x>y2: xt,yt,zt=x-y2,17,z else: xt,yt,zt=0,y+x,z f(xt,yt,zt) # way2: if x>y3: xt,yt,zt=x-y3,y,13 else: xt,yt,zt=0,y,z+x f(xt,yt,zt) # way3: if y>y1: xt,yt,zt=30,y-y1,z else: xt,yt,zt=x+y,0,z f(xt,yt,zt) # way4: if y>y3: xt,yt,zt=x,y-y3,13 else: xt,yt,zt=x,0,z+y f(xt,yt,zt) # way5: if z>y1: xt,yt,zt=30,y,z-y1 else: xt,yt,zt=x+z,y,0 f(xt,yt,zt) # way6: if z>y2: xt,yt,zt=x,17,z-y2 else: xt,yt,zt=x,y+z,0 f(xt,yt,zt) f(30,0,0)
运行结果:
15 15 0 0 [30, 0, 0] 1 [13, 17, 0] 2 [0, 17, 13] 3 [17, 0, 13] 4 [17, 13, 0] 5 [4, 13, 13] 6 [4, 17, 9] 7 [21, 0, 9] 8 [21, 9, 0] 9 [8, 9, 13] 10 [8, 17, 5] 11 [25, 0, 5] 12 [25, 5, 0] 13 [12, 5, 13] 14 [12, 17, 1] 15 [29, 0, 1] 16 [29, 1, 0] 17 [16, 1, 13] 18 [16, 14, 0] 19 [3, 14, 13] 20 [3, 17, 10] 21 [20, 0, 10] 22 [20, 10, 0] 23 [7, 10, 13] 24 [7, 17, 6] 25 [24, 0, 6] 26 [24, 6, 0] 27 [11, 6, 13] 28 [11, 17, 2] 29 [28, 0, 2] 30 [28, 2, 0] 31 [15, 2, 13] 32 [15, 15, 0] [Finished in 0.1s]
30L,17L,13L容器分油,python递归,深度优先算法的更多相关文章
- python 递归深度优先搜索与广度优先搜索算法模拟实现
一.递归原理小案例分析 (1)# 概述 递归:即一个函数调用了自身,即实现了递归 凡是循环能做到的事,递归一般都能做到! (2)# 写递归的过程 1.写出临界条件2.找出这一次和上一次关系3.假设当前 ...
- python 递归,深度优先搜索与广度优先搜索算法模拟实现
一.递归原理小案例分析 (1)# 概述 递归:即一个函数调用了自身,即实现了递归 凡是循环能做到的事,递归一般都能做到! (2)# 写递归的过程 1.写出临界条件 2.找出这一次和上一次关系 3.假设 ...
- 用Python递归解决阿拉伯数字转为中文财务数字格式的问题(2)--打开思路的一种方法
几天前自己写了个将阿拉伯数字转为中文财务数字的程序.用的递归,不幸的是它是树形递归. 虽然实际过程中不太可能出现金额数字大到让Python递归栈溢出,但是始终是一块心病,这玩意终究在理论上是受限制的. ...
- Python递归_打印节点信息
Python递归_打印节点信息 递归特性:1.必须由一个明确的结束条件2.每次进入更深一层递归时,问题规模相比上一次递归都应该有所减少3.递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用时 ...
- pycharm使用docker容器的python解释器,
上一篇是pycharm调用docker的镜像的python解释器. 此篇介绍pycharm 调用docker的容器的python解释器. 这两个思路还是不一样的,第一个是用pycham界面的选择pyt ...
- Python——递归、二分查找算法
递归函数 1. 递归 (1)什么是递归:在函数中调用自身函数(2)最大递归深度:默认997/998——是Python从内存角度出发做的限制 n = 0 def story(): global n n+ ...
- Python递归实现汉诺塔
Python递归实现汉诺塔: def f3(n,x,y,z): if(n==1): print(x,'--->',z) else: f3(n-1,x,z,y) print(x,'--->' ...
- python递归列出目录及其子目录下所有文件
python递归列出目录及其子目录下所有文件 一.前言 函数的递归,简单来说,就是函数内部调用自己 先举个小例子,求阶乘 def factorial(n): if n == 0: return 1 e ...
- python(递归实例)
摘要:在学习python递归知识点时,总是一知半解,似懂非懂的..在反复看视频翻资料同时,也收集案例来分析求证..通过分析下面几个案例希望能有所帮助!!! 1.用递归的方法实现阶乘... def nu ...
随机推荐
- JVM(7) Java内存模型与线程
衡量一个服务性能的高低好坏,每秒事务处理数(Transactions Per Second,TPS)是最重要的指标之一,它代表着一秒内服务端平均能响应的请求总数,而 TPS 值与程序的并发能力又有非常 ...
- itextsharp生成pdf
itextsharp在ios中可用,亲测 (一)生成文档 Document document = , , , ), , , , ); //Document document = new Documen ...
- ansible剧本之playbook操作
ansible 剧本 yaml介绍: 是一个编程语言 文件后缀名 yaml yml 数据对应格式: 字典: key: value 列表: [] - ansible-playbook命令格式 执行顺序: ...
- Chrome插件开发(四)
在前面我们编写了三个比较实用的插件,在实际工作中,我们还会使用很多其他的插件,比如掘金,Pocket之类的,我们可能需要经常启用或禁用插件或者删除插件,如果每次都要点到更多工具->扩展程序中去做 ...
- SAP Web Service简介与配置方法
[版权声明]本文为博主原创文章,转载请在明显位置注明出处. 一. SAP Web Service简介 二. SAP Web Service配置准备工作 1. 通过RZ10配置服务器名称和其他参数 2. ...
- [2018-06-28] django项目 实例
实例一.显示一个基本的字符串在网页中 首先先进入views.py def home(request): string = u'随便写' return render(request, 'home.htm ...
- vue学习之插槽
插槽 插槽(Slot)是Vue提出来的一个概念,正如名字一样,插槽用于决定将所携带的内容,插入到指定的某个位置,从而使模板分块,具有模块化的特质和更大的重用性. 个人理解:我感觉插槽就是父组件控制插槽 ...
- group:状压dp,轮廓线
神仙题.但是难得的傻孩子cbx没有喊题解,所以也就难得的自己想出来了一个如此神仙的题. 如果是自己想的,说它神仙是不是有点不合适啊..? 反正的确不好像.关键就在于这个标签.颓完标签就差不多会了. % ...
- 史上最全的excel读写技术分享
目录 简介 导出excel常用的几种方法 POI CSV jxl jxls easyexcel 快速入门 代码解读 总结 常用API 单元格样式 合并单元格 数据样式 多sheet设置 单元格添加超链 ...
- PTA刷题记录(1)
团队天梯赛-------(2)分值:20 题目要求:你写个程序把给定的符号打印成沙漏的形状.例如给定17个“*”,要求按下列格式打印 ***** *** * *** ***** 所谓“沙漏形状” ...