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 ...
随机推荐
- Sublime Text 常用快捷键(Mac环境)
Shift + Cmd + P 显示命令面板 Cmd + P 快速查找目录和文件,跳转到任意地方 Cmd + P 输入 @ ,可以查找文件中的函数 Cmd + P 输入 # ,可以查找文件中的字符 C ...
- todoList.html
待做的事情 {{item}} 完成 <!DOCTYPE html> <html> <head> <meta charset="UTF-8" ...
- 【spock】单测竟然可以如此丝滑
0. 为什么人人都讨厌写单测 在之前的关于swagger文章里提到过,程序员最讨厌的两件事,一件是别人不写文档,另一件就是自己写文档.这里如果把文档换成单元测试也同样成立. 每个开发人员都明白单元测试 ...
- 你编写的Java代码是咋跑起来的?
如果你是一名 Java 开发人员,你肯定指定 Java 代码有很多种不同的运行方式.比如说可以在开发工具(IDEA.Eclipse等)中运行,可以双击执行 jar 文件运行,也可以在命令行中运行,甚至 ...
- mysql免安装包配置
最近在通过zip包配置mysql,mysql版本:5.7.13.配置过程中,踩了一些坑,下面做了一些简单的记录,配置的具体过程如下: 1.将mysql zip包解压,放到指定目录中,在系统环境变量中配 ...
- 最全的access2013教程 access 2010教程 access 2007教程 Access 2003教程
最全的access2013教程 access 2010教程 access 2007教程 Access 2003教程 都在这个access中国网站里 http://www.office-cn.net/o ...
- js 面试题解析(一)
1.call和apply的区别. 当需要传的参数是一个数组时,使用apply更加方便;而使用call时需要将数组展开,将数组中的每一项单独传入. 当需要传入的参数大于3个时,call的性能要略优于ap ...
- Codeforces 1109D: generalizations of Cayley's formula证明
做这题的时候发现题解里有提到\(generalizations\ of\ Cayley's\ formula\)的,当场懵逼,Wikipedia里也就带到了一下,没有解释怎么来的,然后下面贴了篇论文. ...
- [考试反思]0919csp-s模拟测试47:苦难
ISOLATION 也不粘上面的了,先管好自己. 附了个近期总分,可以看出什么. 反思一下考试心态: 开场看题目,T1傻逼题不用脑子,T2傻逼板子,T3... 这T3是啥啊?没看懂题目啊?再看一遍.啥 ...
- NOIP模拟18 T2
不知道为什么很多人拒绝这题打搜索...其实搜索在充分剪枝后时间是非常优秀的,不管数据怎样基本都可跑出 首先一个显然结论:对于某种状态,他抓到的小精灵一定是一个连续的区间. 因此我们可以枚举这个区间的左 ...