python ---倒酒!!
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import numbers
import numpy
import math
'''
三个容器分别为12升、8升、5升,初始时12升容器盛满酒,就只能在三个容器中来回倾倒,如某容器中恰好6升就,则结束
3*2维数组:三个二维数组表示三个容器;二维数组第一个数字表示容器大小,第二数字表示当前容器中的酒量
结束条件:前两个二维数组中第二个数字为6
倒酒的动作:两个数组A,B之间,第一个向第二个倒酒
B[1]=B[0]或A[1]=0不操作
若A[1]+B[1]>=B[0],则A[1]=A[1]+B[1]-B[0],B[1]=B[0]
若B[0]>A[1]+B[1],则B[1]=A[1]+B[1],A[1]=0
到酒后的动作:记录三个容器中的酒量到队列:若任意一个等于6则打印返回;
若队列中与当结果不存在重复,则继续下一个倒酒动作
每个状态有六种倒酒操作:1-》2 ,1-》3,2-》3,2-》1,3-》1,3->2
'''
#initstatus=[[12,2],[8,5],[5,5]]
class purewine(object):
def __init__(self):
pass
def purewine(self,A,B,a,b):
if a + b >= B:
a = a + b - B
b = B
else:
b = a + b
a = 0
return A,B,a,b
def judge(self,A,B,C,a,b,c,t='',r=0):
restr=str(a)+str(b)+str(c)
if a==r or b==r or c==r:
t=t+','+restr
print(t)
return True
else:
if t.count(restr)<1:
t = t + ',' + restr
self.dynamictree(A,B,C,a,b,c,t,r)
def dynamictree(self,A,B,C,a,b,c,t='',r=0):
j,k,m,n=self.purewine(A,B,a,b,)
self.judge(j,k,C,m,n,c,t,r)
j,k,m,n = self.purewine(A, C, a, c)
self.judge(j, B, k, m, b, n, t, r)
j, k, m, n = self.purewine(B, C, b, c)
self.judge(A, j, k, a, m, n, t, r)
j, k, m, n = self.purewine(C, B, c, b)
self.judge(A, k, j, a, n, m, t, r)
j, k, m, n = self.purewine(C, A, c, a)
self.judge(k, B, j, n, b, m, t, r)
j, k, m, n = self.purewine(B, A, b, a)
self.judge(k, j, C, n, m, c, t, r)
wins=purewine()
wins.dynamictree(12,8,5,12,0,0,'1200',6)
输出:
1200,480,084,804,840,345,381,1101,1110,615
1200,480,435,075,084,804,840,345,381,1101,1110,615
1200,480,435,075,570,525,1020,1002,282,084,804,840,345,381,1101,1110,615
1200,480,435,075,570,525,1020,1002,705,750,255,282,084,804,840,345,381,1101,1110,615
1200,480,435,075,570,525,705,750,255,282,084,804,840,345,381,1101,1110,615
1200,480,435,075,705,750,255,282,084,804,840,345,381,1101,1110,615
1200,480,435,930,903,183,084,804,840,345,381,1101,1110,615
1200,480,435,930,903,183,165
1200,480,435,930,903,705,075,084,804,840,345,381,1101,1110,615
1200,480,435,930,903,705,075,570,525,1020,1002,282,084,804,840,345,381,1101,1110,615
1200,480,435,930,903,705,750,255,075,084,804,840,345,381,1101,1110,615
1200,480,435,930,903,705,750,255,075,570,525,1020,1002,282,084,804,840,345,381,1101,1110,615
1200,480,435,930,903,705,750,255,282,084,804,840,345,381,1101,1110,615
1200,480,435,930,903,705,750,255,282,1002,1020,525,075,084,804,840,345,381,1101,1110,615
1200,480,435,930,903,705,750,255,282,1002,1020,525,570,075,084,804,840,345,381,1101,1110,615
1200,480,435,705,075,084,804,840,345,381,1101,1110,615
1200,480,435,705,075,570,525,1020,1002,282,084,804,840,345,381,1101,1110,615
1200,480,435,705,750,255,075,084,804,840,345,381,1101,1110,615
1200,480,435,705,750,255,075,570,525,1020,1002,282,084,804,840,345,381,1101,1110,615
1200,480,435,705,750,255,282,084,804,840,345,381,1101,1110,615
1200,480,435,705,750,255,282,1002,1020,525,075,084,804,840,345,381,1101,1110,615
1200,480,435,705,750,255,282,1002,1020,525,570,075,084,804,840,345,381,1101,1110,615
1200,705,075,084,480,435,930,903,183,165
1200,705,075,084,804,840,480,435,930,903,183,165
1200,705,075,084,804,840,345,381,480,435,930,903,183,165
1200,705,075,084,804,840,345,381,1101,1110,480,435,930,903,183,165
1200,705,075,084,804,840,345,381,1101,1110,615
1200,705,075,570,480,084,804,840,345,381,1101,1110,615
1200,705,075,570,480,435,930,903,183,084,804,840,345,381,1101,1110,615
1200,705,075,570,480,435,930,903,183,165
1200,705,075,570,525,1020,480,084,804,840,345,381,1101,1110,615
1200,705,075,570,525,1020,480,435,930,903,183,084,804,840,345,381,1101,1110,615
1200,705,075,570,525,1020,480,435,930,903,183,165
1200,705,075,570,525,1020,1002,282,084,480,435,930,903,183,165
1200,705,075,570,525,1020,1002,282,084,804,840,480,435,930,903,183,165
1200,705,075,570,525,1020,1002,282,084,804,840,345,381,480,435,930,903,183,165
1200,705,075,570,525,1020,1002,282,084,804,840,345,381,1101,1110,480,435,930,903,183,165
1200,705,075,570,525,1020,1002,282,084,804,840,345,381,1101,1110,615
1200,705,075,570,525,1020,1002,282,255,750,480,084,804,840,345,381,1101,1110,615
1200,705,075,570,525,1020,1002,282,255,750,480,435,930,903,183,084,804,840,345,381,1101,1110,615
1200,705,075,570,525,1020,1002,282,255,750,480,435,930,903,183,165
1200,705,075,570,525,1020,1002,282,480,084,804,840,345,381,1101,1110,615
1200,705,075,570,525,1020,1002,282,480,435,930,903,183,084,804,840,345,381,1101,1110,615
1200,705,075,570,525,1020,1002,282,480,435,930,903,183,165
1200,705,750,480,084,804,840,345,381,1101,1110,615
1200,705,750,480,435,075,084,804,840,345,381,1101,1110,615
1200,705,750,480,435,075,570,525,1020,1002,282,084,804,840,345,381,1101,1110,615
1200,705,750,480,435,930,903,183,084,804,840,345,381,1101,1110,615
1200,705,750,480,435,930,903,183,165
1200,705,750,255,075,084,480,435,930,903,183,165
1200,705,750,255,075,084,804,840,480,435,930,903,183,165
1200,705,750,255,075,084,804,840,345,381,480,435,930,903,183,165
1200,705,750,255,075,084,804,840,345,381,1101,1110,480,435,930,903,183,165
1200,705,750,255,075,084,804,840,345,381,1101,1110,615
1200,705,750,255,075,570,480,084,804,840,345,381,1101,1110,615
1200,705,750,255,075,570,480,435,930,903,183,084,804,840,345,381,1101,1110,615
1200,705,750,255,075,570,480,435,930,903,183,165
1200,705,750,255,075,570,525,1020,480,084,804,840,345,381,1101,1110,615
1200,705,750,255,075,570,525,1020,480,435,930,903,183,084,804,840,345,381,1101,1110,615
1200,705,750,255,075,570,525,1020,480,435,930,903,183,165
1200,705,750,255,075,570,525,1020,1002,282,084,480,435,930,903,183,165
1200,705,750,255,075,570,525,1020,1002,282,084,804,840,480,435,930,903,183,165
1200,705,750,255,075,570,525,1020,1002,282,084,804,840,345,381,480,435,930,903,183,165
1200,705,750,255,075,570,525,1020,1002,282,084,804,840,345,381,1101,1110,480,435,930,903,183,165
1200,705,750,255,075,570,525,1020,1002,282,084,804,840,345,381,1101,1110,615
1200,705,750,255,075,570,525,1020,1002,282,480,084,804,840,345,381,1101,1110,615
1200,705,750,255,075,570,525,1020,1002,282,480,435,930,903,183,084,804,840,345,381,1101,1110,615
1200,705,750,255,075,570,525,1020,1002,282,480,435,930,903,183,165
1200,705,750,255,282,084,075,570,480,435,930,903,183,165
1200,705,750,255,282,084,075,570,525,1020,480,435,930,903,183,165
1200,705,750,255,282,084,480,435,930,903,183,165
1200,705,750,255,282,084,804,840,480,435,930,903,183,165
1200,705,750,255,282,084,804,840,345,075,570,480,435,930,903,183,165
1200,705,750,255,282,084,804,840,345,075,570,525,1020,480,435,930,903,183,165
1200,705,750,255,282,084,804,840,345,381,480,435,930,903,183,165
1200,705,750,255,282,084,804,840,345,381,1101,1110,480,435,930,903,183,165
1200,705,750,255,282,084,804,840,345,381,1101,1110,615
1200,705,750,255,282,480,084,804,840,345,381,1101,1110,615
1200,705,750,255,282,480,435,075,084,804,840,345,381,1101,1110,615
1200,705,750,255,282,480,435,930,903,183,084,804,840,345,381,1101,1110,615
1200,705,750,255,282,480,435,930,903,183,165
1200,705,750,255,282,1002,1020,480,084,804,840,345,381,1101,1110,615
1200,705,750,255,282,1002,1020,480,435,075,084,804,840,345,381,1101,1110,615
1200,705,750,255,282,1002,1020,480,435,930,903,183,084,804,840,345,381,1101,1110,615
1200,705,750,255,282,1002,1020,480,435,930,903,183,165
1200,705,750,255,282,1002,1020,525,075,084,480,435,930,903,183,165
1200,705,750,255,282,1002,1020,525,075,084,804,840,480,435,930,903,183,165
1200,705,750,255,282,1002,1020,525,075,084,804,840,345,381,480,435,930,903,183,165
1200,705,750,255,282,1002,1020,525,075,084,804,840,345,381,1101,1110,480,435,930,903,183,165
1200,705,750,255,282,1002,1020,525,075,084,804,840,345,381,1101,1110,615
1200,705,750,255,282,1002,1020,525,075,570,480,084,804,840,345,381,1101,1110,615
1200,705,750,255,282,1002,1020,525,075,570,480,435,930,903,183,084,804,840,345,381,1101,1110,615
1200,705,750,255,282,1002,1020,525,075,570,480,435,930,903,183,165
1200,705,750,255,282,1002,1020,525,570,480,084,804,840,345,381,1101,1110,615
1200,705,750,255,282,1002,1020,525,570,480,435,075,084,804,840,345,381,1101,1110,615
1200,705,750,255,282,1002,1020,525,570,480,435,930,903,183,084,804,840,345,381,1101,1110,615
1200,705,750,255,282,1002,1020,525,570,480,435,930,903,183,165
1200,705,750,255,282,1002,1020,525,570,075,084,480,435,930,903,183,165
1200,705,750,255,282,1002,1020,525,570,075,084,804,840,480,435,930,903,183,165
1200,705,750,255,282,1002,1020,525,570,075,084,804,840,345,381,480,435,930,903,183,165
1200,705,750,255,282,1002,1020,525,570,075,084,804,840,345,381,1101,1110,480,435,930,903,183,165
1200,705,750,255,282,1002,1020,525,570,075,084,804,840,345,381,1101,1110,615
python ---倒酒!!的更多相关文章
- Jams倒酒
Jams是一家酒吧的老板,他的酒吧提供2种体积的啤酒,a ml 和 b ml,分别使用容积为a ml 和 b ml的酒杯来装载. 酒吧的生意并不好.Jams发现酒鬼们都很穷,不像他那么土豪.有时,他们 ...
- Jams倒酒(pour)
1.Jams倒酒(pour) Jams是一家酒吧的老板,他的酒吧提供2种体积的啤酒,a ml 和 b ml,分别使用容积为a ml 和 b ml的酒杯来装载. 酒吧的生意并不好.Jams发现酒鬼们都很 ...
- P1292 倒酒
P1292 倒酒这个题有很多模型,这个是一个变形.我令一个解为x两个整数Pa和Pb,分别表示从体积为a ml的酒杯中倒出酒的次数和将酒倒入体积为b ml的酒杯中的次数(酒杯一开始为空).b最后是0,所 ...
- 洛谷——P1292 倒酒
P1292 倒酒 题目描述 Winy是一家酒吧的老板,他的酒吧提供两种体积的啤酒,a ml和b ml,分别使用容积为a ml和b ml的酒杯来装载. 酒吧的生意并不好.Winy发现酒鬼们都非常穷.有时 ...
- 洛谷 P1292 倒酒
题目描述 Winy是一家酒吧的老板,他的酒吧提供两种体积的啤酒,a ml和b ml,分别使用容积为a ml和b ml的酒杯来装载. 酒吧的生意并不好.Winy发现酒鬼们都非常穷.有时,他们会因为负担不 ...
- 洛谷题解 P1292 【倒酒】
原题传送门 题目描述 Winy是一家酒吧的老板,他的酒吧提供两种体积的啤酒,a ml和b ml,分别使用容积为a ml和b ml的酒杯来装载. 酒吧的生意并不好.Winy发现酒鬼们都非常穷.有时,他们 ...
- Python倒计时器(转)
# Countdown using Tkinter from Tkinter import * import time import tkMessageBox class App: def __ini ...
- Python 倒叙切片
倒序切片 对于list,既然Python支持L[-1]取倒数第一个元素,那么它同样支持倒数切片,试试: >>> L = ['Adam', 'Lisa', 'Bart', 'Paul' ...
- 华哥倒酒<区间标记,二分>
题目链接 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; t ...
随机推荐
- Linux命令大纲
LINUX服务器,广泛用于服务器的操作系统.本文以centos作为基础大概记录下自己的心得. 一.文件/目录的增删改查 1.增加 touch filename > filename mkdir ...
- CentOS 6.x/7.x上安装git
yum安装 # yum info git # yum install -y git 可以通过下面的命令来检查是否安装了git环境 git --version 参考:如何在CentOS 6.x/7.x上 ...
- 一文读懂BeanFactory和FactoryBean区别
一直以来,很多人对于Spring中的BeanFactory和FactoryBean都是分不清楚的 BeanFactory 这个其实是所有Spring Bean的容器根接口,给Spring 的容器定义一 ...
- 分布式一致性算法 Paxos、Raft、Zab的区别与联系
什么是分布式系统? 拿一个最简单的例子,就比如说我们的图书管理系统.之前的系统包含了所有的功能,比如用户注册登录.管理员功能.图书借阅管理等.这叫做集中式系统.也就是一个人干了好几件事. 后来随着功能 ...
- python连接mysql中报错1064修改方法
Python是编程语言,MySQL是数据库,它们是两种不同的技术:要想使Python操作MySQL数据库需要使用驱动.这里选用PyMySQL驱动.下载地址: https://pypi.python.o ...
- python3+pyqt5+opencv3简单使用
python3+pyqt5+opencv3简单使用(转载) 关于python3下搭建pyqt5(pycharm)参考这条链接. 对于pyqt的使用个人比较建议ui设计与逻辑功能分开开发. 下面介绍下简 ...
- 性能提升40%: 腾讯 TKE 用 eBPF 绕过 conntrack 优化 K8s Service
Kubernetes Service 用于实现集群中业务之间的互相调用和负载均衡,目前社区的实现主要有userspace,iptables和IPVS三种模式.IPVS模式的性能最好,但依然有优化的空间 ...
- jinja2快速实现自定义的robotframework的测试报告
一.背景 RF的结果报告可以方便我们查看每一条用例集.用例的执行结果统计,但是有的项目涉及到一些数据的比对,希望能够直观到看到数据,原生的测试报告就无法满足这个需求了. 原生的报告 项目需求报告格式 ...
- Activiti7 生成表结构
首先创建一个Maven项目 整体的项目结构 activiti.cfg.xml配置文件 <?xml version="1.0" encoding="UTF-8&quo ...
- 一文读懂神经网络训练中的Batch Size,Epoch,Iteration
一文读懂神经网络训练中的Batch Size,Epoch,Iteration 作为在各种神经网络训练时都无法避免的几个名词,本文将全面解析他们的含义和关系. 1. Batch Size 释义:批大小, ...