python小孩子_小孩分油问题python解决

5

(S,T) and S>0 and S+T<=3 -> (0,S+T)

7

两瓶中的油全倒入

3

两瓶

6

(S,T) and T>0 and S+T<=7 -> (S+T,0)

3

两瓶中的油全倒入

7

两瓶

7

(S,T) and S>0 and S+T>=3 -> (S+T-3,3)

7

两瓶中的油倒满

3

两瓶

8

(S,T) and T>0 and S+T>=7 -> (7,S+T-7)

3

两瓶中的油倒满

7

两瓶

3.

代码(穷搜索)

广度优先搜索:

(文本输出)

import

os

initial_oil_state = [

10

,

0

,

0

]

#

油瓶的初始状态

oil_volume = [

10

,

7

,

3

]

#

每个油瓶的对应容积

from

collections

import

deque

#

导入

collections

标准库中的队列对象和方法

#

利用

python

deque

队列记录状态转移情况,初始化时加入油瓶初始状态。

deque

是可以

从头尾插入和删除的队列

record = deque()

record.append(initial_oil_state)

#

删除文件,因为文件以追加模式打开

if

os.path.exists(

'oil_half_width_answer.txt'

):

os.remove(

'oil_half_width_answer.txt'

)

def

NextStateLegal(current_state,oil_volume):

next_action = [

(from_,to_)

#

列表推导

#

例如

[x*x for x in range(10) if x % 3 == 0]

得出

10

以内能被

3

整除的数的平方构成

的列表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值