python 练习 5
#!/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的更多相关文章
- Python中的多进程与多线程(一)
一.背景 最近在Azkaban的测试工作中,需要在测试环境下模拟线上的调度场景进行稳定性测试.故而重操python旧业,通过python编写脚本来构造类似线上的调度场景.在脚本编写过程中,碰到这样一个 ...
- Python高手之路【六】python基础之字符串格式化
Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...
- Python 小而美的函数
python提供了一些有趣且实用的函数,如any all zip,这些函数能够大幅简化我们得代码,可以更优雅的处理可迭代的对象,同时使用的时候也得注意一些情况 any any(iterable) ...
- JavaScript之父Brendan Eich,Clojure 创建者Rich Hickey,Python创建者Van Rossum等编程大牛对程序员的职业建议
软件开发是现时很火的职业.据美国劳动局发布的一项统计数据显示,从2014年至2024年,美国就业市场对开发人员的需求量将增长17%,而这个增长率比起所有职业的平均需求量高出了7%.很多人年轻人会选择编 ...
- 可爱的豆子——使用Beans思想让Python代码更易维护
title: 可爱的豆子--使用Beans思想让Python代码更易维护 toc: false comments: true date: 2016-06-19 21:43:33 tags: [Pyth ...
- 使用Python保存屏幕截图(不使用PIL)
起因 在极客学院讲授<使用Python编写远程控制程序>的课程中,涉及到查看被控制电脑屏幕截图的功能. 如果使用PIL,这个需求只需要三行代码: from PIL import Image ...
- Python编码记录
字节流和字符串 当使用Python定义一个字符串时,实际会存储一个字节串: "abc"--[97][98][99] python2.x默认会把所有的字符串当做ASCII码来对待,但 ...
- Apache执行Python脚本
由于经常需要到服务器上执行些命令,有些命令懒得敲,就准备写点脚本直接浏览器调用就好了,比如这样: 因为线上有现成的Apache,就直接放它里面了,当然访问安全要设置,我似乎别的随笔里写了安全问题,这里 ...
- python开发编译器
引言 最近刚刚用python写完了一个解析protobuf文件的简单编译器,深感ply实现词法分析和语法分析的简洁方便.乘着余热未过,头脑清醒,记下一点总结和心得,方便各位pythoner参考使用. ...
- 关于解决python线上问题的几种有效技术
工作后好久没上博客园了,虽然不是很忙,但也没学生时代闲了.今天上博客园,发现好多的文章都是年终总结,想想是不是自己也应该总结下,不过现在还没想好,等想好了再写吧.今天写写自己在工作后用到的技术干货,争 ...
随机推荐
- Struts2的标签库(五)——表单标签
Struts2的标签库(五) --表单标签 几个特殊的表单标签的使用: 1.checkboxlist标签 该标签用于创建多个复选框,用于同时生成多个<input type="check ...
- PHP 对字符串进行十六进制替换 invalid character in attribute value
最近在xml传输过程中遇到字符串报错,表面看上去没有任何错误.将文件用winhex打开,看到对应字符串中多了'1F'.xml无法解析'1F'.随后在代码中将这个替换掉. $str = pack(&qu ...
- C#控制台基础 函数的参数是接口 实现接口的类都可以作为参数,很好用
镇场诗: 大梦谁觉,水月中建博客.百千磨难,才知世事无常. 今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ 1.代 ...
- EXCEL中讲 10分10秒转换成610秒
前几天宝贝跟我打赌100W说我20天给她打电话不到10小时,我说绝对超过10小时了,但是由于宝贝的赖皮死活不承认,所以我被迫掉出通话记录,拿到通话记录我有点小郁闷,因为通话记录里的时间格式00分00秒 ...
- BZOJ 2433 智能车比赛(计算几何+最短路)
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=2433 题意:若干个矩形排成一排(同一个x之上最多有一个矩形),矩形i和i+1相邻.给定两 ...
- 【Unity3D游戏开发】Application.systemLanguage无法区分简体中文和繁体中文 (二六)
游戏发布,语言本地化需要繁体中文和简体中文 iOS8版本之前没问题,iOS9上无法正常识别这两种语言 原因是在iOS9上,Unity通过Application.systemLanguage返回的简体中 ...
- 【转载】linux内核笔记之高端内存映射
原文:linux内核笔记之高端内存映射 在32位的系统上,内核使用第3GB~第4GB的线性地址空间,共1GB大小.内核将其中的前896MB与物理内存的0~896MB进行直接映射,即线性映射,将剩余的1 ...
- windows上配置git
windows上配置git1.下载mysisigit进入http://msysgit.github.io/,下载,安装,下一步下一步即可. 2.下载tortoisegit进入http://downlo ...
- 移动端图表插件jChart.js的修改
bug1: 折线图,设置datasetGesture : true时,Y轴的刻度值居然会变.会变也就算了,居然没地方设置不能变. bug2: 折线图,设置tap.point事件,和datasetGes ...
- [转]-Gradle使用手册(二):项目结构
原文地址:http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Using-sourceCompatibility-1. ...