#!/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. 如何在安装32位Oracle客户端组件的情况下以64位模式运行

    C#使用System.Data.OracleClient连接Oracle数据库.之前在WinXP上正常运行的程序移植到Windows 2008 x64上之后就连不上数据库了,错误信息如下:启动data ...

  2. CronTrigger:Corn表达式

    定时触发 CronTrigger CronTriggers往往比SimpleTrigger更有用,如果您需要基于日历的概念,而非SimpleTrigger完全指定的时间间隔,复发的发射工作的时间表.C ...

  3. 记一次MySql入库后,文本出现乱码的问题

    最近采用ADO.NET开发了一个工具,解析了一条如下的日志并入库(MySql) -- :: [INFO] roleName=♣丶伊诺,orderId=,price= 发现入库后的roleName中的♣ ...

  4. 线程入门之sleep

    package com.thread; /** * <sleep:使线程休眠一些时间> * <功能详细描述> * * @author 95Yang */ public clas ...

  5. php 连接mysql的问题

    当前我的情况是安装上mysql配置了my.cnf中的socket,并且在指定位置也生成了 mysql.sock 的sock文件,此时我通过php.ini来设置php连接mysql.sock的文件,但是 ...

  6. .net 浏览器请求过程(图)

    大致: 细节: (信息来源于传智播客教学视频)

  7. 模仿$.Callbacks实现

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  8. XAF应用开发教程(一) 创建项目

    XAF是DevExpress公司的快速开发框架,全称eXpress Application Framework,是企业信息系统的开发利器,快速开发效果显著,在.net框架中,笔者至今没有找到一款可以与 ...

  9. JMS【三】--ActiveMQ简单的HelloWorld实例

    第一篇博文JMS[一]--JMS基本概念,我们介绍了JMS的两种消息模型:点对点和发布订阅模型,以及消息被消费的两个方式:同步和异步,JMS编程模型的对象,最后说了JMS的优点. 第二篇博文JMS[二 ...

  10. 利用JDK的中Proxy动态代理实现Spring的AOP技术

    首先给出设计模式静态代理与动态代理的学习: http://layznet.iteye.com/blog/1182924   讲的不错 然后我们实现AOP 就要求我们对委托的所有方法的调用实现拦截 代理 ...