#!/usr/bin/python
# -*- coding: utf-8 -*-
from collections import deque
def z69():
'''猜牌术(1)
魔术师,最上面一张是黑a,第2次从上到下数2张放在最
底下,然后翻开是黑k,然后再从上到下数3张放
在最底下,是黑q,第k次数k张,依次翻开,得
到黑a~1;问原始的牌序'''
ss=13
d = deque(range(1,ss+1))
f=[1]*ss
for i in range(ss):
d.rotate(-(i%len(d)))
f[d[0]-1]=i+1
d.popleft()
print f
def z70():
'''猜牌术(2) 魔术师
最上面一张是黑a,然后从上到下数2张放在最底
下,然后翻开是黑k,然后再从上到下数2张放在
最底下,是黑q,依次翻开,得到黑a~1,红a~1
;问原始的牌序 '''
def pai(x):
if x>13:
ch='r'
x-=13
else:
ch='b'
return ch+str(x)
ss=26
d = deque(range(1,ss+1))
f=[1]*ss
f[0]=pai(1)
d.popleft()
for i in range(2,ss+1):
d.rotate(-(2%len(d)))
f[d[0]-1]=pai(i)
d.popleft()
print f
def z71():
#11个人组成一个环,报数,每数到7,那个人就出来,问7次后剩下哪4个人
ss=11
nn=4
kk=7
d = deque(range(1,ss+1))
for i in range(kk):
d.rotate(-((nn-1)%len(d)))
print d.popleft()
print d
def z72():
#4个3和3个5可以组成几个不同的数分别是多少
e=[]
for i in range(5):
for j in range(4):
e+=[i*3+j*5]
print set(e)
def ntom(x,size,mod):
t=[0]*(size)
j=0
while x and j<size:
x,t[j]=divmod(x,mod)
j+=1
return t
def z73():
#五个互相不相同的数和为23,其中若干个加起来可以表示1~23内的全部自然数,问他们是多少
def h73(xx):
t=[]
n=5
for nn in range(1,2**n):
y=sum(map(lambda x,y:x*y,xx,ntom(nn,n,2)))
t.append(y)
return len(set(t))
ss=23
for i in range(ss):
for j in range(i+1,ss):
for m in range(j+1,ss):
for n in range(m+1,ss):
kk=ss-i-j-m-n
if kk>n:
kt=[i,j,m,n,kk]
if h73(kt)==ss:
print kt
def z74():
#重量四十的砝码被摔成四块,每块都是整数,并且用这四块可以测量1~40任意一个重量,问他们重多少
def h74(xx):
t=[]
n=4
for nn in range(1,3**n):
y=sum(map(lambda x,y:x*y,xx,ntom(nn,n,3)))
t.append(y)
return len(set(t))
ss=40
for i in range(ss):
for j in range(i+1,ss):
for m in range(j+1,ss):
kk=ss-i-j-m
if kk>m:
kt=[i,j,m,kk]
if h74(kt)==ss:
print kt
def z75():
'''10个人围成一个环,分东西。他们一开始有{10,2,8,22,16,4,10,6,14,20}
个东西,所有的人如果是奇数个就再要一个,然后所有的人同时将自己的一半给他右边的人,
问几次后大家的东西的个数一样 '''
d=deque([ 10, 2, 8, 22, 16, 4, 10, 6, 14, 20])
print d
while [d[0]]*10!=d:
d=map(lambda x:x%2 and (x+1)/2 or x/2,d)
d2=deque(d)
d2.rotate(1)
d=map(lambda x,y:x+y,d,d2)
print d def z76():
#6个数中选择若干个数,其中他们的和最接近10,问怎么选{3.1,1.7,2.0,5.3,0.9,7.2}
m2=[3.1,1.7,2.0,5.3,0.9,7.2]
m2=[x*10 for x in m2]
n=6
t=[]
for nn in range(1,2**n):
tt=ntom(nn,n,2)
y=abs(sum(map(lambda x,y:x*y,m2,tt))-100)
t+=[[y,tt]]
t=filter(lambda x,y=min(t)[0]:x[0]<y+0.01,t)
for i in t:
m=filter(lambda x:x,map(lambda x,y:x and y or 0,i[1],m2))
print m
def z77():
#分水问题:某人有12升水,想平分他为2个6升,但是只有8升和5升的容器,为最少要倒几次才可以,怎么分
def nexts(a,b,c,d):
tt=[]
ke1=reduce(lambda x,y:x+y,map(lambda x:str(x),a))
for i in range(0,3):
if a[i]!=0:
for j in range(0,3):
if i!=j and a[j]<b[j]:
m=[]+a
t=b[j]-a[j]
if m[i]>=t:
m[i]-=t
m[j]=b[j]
else:
m[j]+=m[i]
m[i]=0
if m not in c:
tt+=[m]
ke=reduce(lambda x,y:x+y,map(lambda x:str(x),m))
d[ke]=ke1
return tt
a=[12,0,0]
b=[12,8,5]
dd=[a,b]
ee={}
t=nexts (a,b,dd,ee)
dd+=t
while 1:
m=[]
for i in t:
m+=nexts(i,b,dd,ee)
dd+=t
t=m
if [6,6,0] in t :break
e=ee[""]
print [6,6,0]
while e!='':
print map(lambda x:int(x),list(e))
e=ee[e]
print [12,0,0]
# raw_input('--> ')
if __name__ == '__main__':
s=""
for i in range(69,78):
s+='z'+str(i)+'()\n'
exec(s)

python 练习 5的更多相关文章

  1. Python中的多进程与多线程(一)

    一.背景 最近在Azkaban的测试工作中,需要在测试环境下模拟线上的调度场景进行稳定性测试.故而重操python旧业,通过python编写脚本来构造类似线上的调度场景.在脚本编写过程中,碰到这样一个 ...

  2. Python高手之路【六】python基础之字符串格式化

    Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...

  3. Python 小而美的函数

    python提供了一些有趣且实用的函数,如any all zip,这些函数能够大幅简化我们得代码,可以更优雅的处理可迭代的对象,同时使用的时候也得注意一些情况   any any(iterable) ...

  4. JavaScript之父Brendan Eich,Clojure 创建者Rich Hickey,Python创建者Van Rossum等编程大牛对程序员的职业建议

    软件开发是现时很火的职业.据美国劳动局发布的一项统计数据显示,从2014年至2024年,美国就业市场对开发人员的需求量将增长17%,而这个增长率比起所有职业的平均需求量高出了7%.很多人年轻人会选择编 ...

  5. 可爱的豆子——使用Beans思想让Python代码更易维护

    title: 可爱的豆子--使用Beans思想让Python代码更易维护 toc: false comments: true date: 2016-06-19 21:43:33 tags: [Pyth ...

  6. 使用Python保存屏幕截图(不使用PIL)

    起因 在极客学院讲授<使用Python编写远程控制程序>的课程中,涉及到查看被控制电脑屏幕截图的功能. 如果使用PIL,这个需求只需要三行代码: from PIL import Image ...

  7. Python编码记录

    字节流和字符串 当使用Python定义一个字符串时,实际会存储一个字节串: "abc"--[97][98][99] python2.x默认会把所有的字符串当做ASCII码来对待,但 ...

  8. Apache执行Python脚本

    由于经常需要到服务器上执行些命令,有些命令懒得敲,就准备写点脚本直接浏览器调用就好了,比如这样: 因为线上有现成的Apache,就直接放它里面了,当然访问安全要设置,我似乎别的随笔里写了安全问题,这里 ...

  9. python开发编译器

    引言 最近刚刚用python写完了一个解析protobuf文件的简单编译器,深感ply实现词法分析和语法分析的简洁方便.乘着余热未过,头脑清醒,记下一点总结和心得,方便各位pythoner参考使用. ...

  10. 关于解决python线上问题的几种有效技术

    工作后好久没上博客园了,虽然不是很忙,但也没学生时代闲了.今天上博客园,发现好多的文章都是年终总结,想想是不是自己也应该总结下,不过现在还没想好,等想好了再写吧.今天写写自己在工作后用到的技术干货,争 ...

随机推荐

  1. 启动Print Spooler服务提示:"错误1068,依存服务或无法启动"

    本人windows8操作系统,从网上看到在运行中输入  sc config spooler depend= rpcss 即可,试了下果然有效.具体原因待了解.

  2. FragMent 初级学习

    FragMent 可以用在一个Activity中也可以用在多个Activity中 我们在activity中加载FragMent的时候,首先添加一个myFragMent的类 通过onCreateView ...

  3. 高仿bootstrap的layout效果(一)

    公司研发一个新的cms,为了减少以后的修改和尽可能大程度的满足客户对cms的灵活需求,我的经理安排我去做一个与bootstrap的layout差不多的效果,这叫什么,锻炼的时候来了,加油,这个急不得一 ...

  4. UVA 10817 十一 Headmaster's Headache

    Headmaster's Headache Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Sub ...

  5. Recast & Detour & TerrainExport Study Feeling

    Recast Navigation和Terrain Export终于算是有点成果了.今天作一个简单的总结,顺便写一些话激励自己. 这个项目的成功对于我这个算法又烂,而又不懂3d图形学的人来说,感觉真是 ...

  6. 集成学习(Ensembling Learning)

    集成学习(Ensembling Learning) 标签(空格分隔): 机器学习 Adabost 对于一些弱分类器来说,如何通过组合方法构成一个强分类器.一般的思路是:改变训练数据的概率分布(权值分布 ...

  7. 对Spring <context:annotation-config/>的理解

    在基于主机方式配置Spring的配置文件中,你可能会见到<context:annotation-config/>这样一条配置,他的作用是向 Spring 容器注册 AutowiredAnn ...

  8. [HDOJ1231]最大连续子序列

    混了好几个地方的博客,还是觉得博客园比较靠谱,于是决定在这里安家落户了.本人本科生一个,希望各位巨巨多多指教~ Hello World! 单独一个象征性的问候实在是太low了,还是决定来点实质性的.. ...

  9. Hibernate 配置 转(http://blog.csdn.net/b671900/article/details/39156065)

    做项目必然要先进行数据库表设计,然后根据数据库设计建立实体类(VO),这是理所当然的,但是到公司里做项目后,让我认识到,没有说既进行完数据库设计后还要再“自己”建立一变VO.意思是,在项目设计时,要么 ...

  10. XML详解:第三部分 XML解析

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...