一、百钱百鸡
公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱,用100文钱买一百只鸡,其中公鸡,母鸡,小鸡都必须要有,问公鸡,母鸡,小鸡要买多少只刚好凑足100文钱。

# encoding: utf-8x = 1
y = 1while x <= 20:while y <= 33:z = 100 - (x + y)if (z % 3 == 0) and (x * 5 + y * 3 + z / 3 == 100):print("公鸡为%d只,母鸡为%d只,小鸡为%d只" % (x, y, z))y += 1y = 1x += 1

这样的效率未免不高,测算一下这样的方案需要多少时间,

# encoding: utf-8
import timex = 1
y = 1start = time.clock()
while x <= 20:while y <= 33:z = 100 - (x + y)if (z % 3 == 0) and (x * 5 + y * 3 + z / 3 == 100):print("公鸡为%d只,母鸡为%d只,小鸡为%d只" % (x, y, z))y += 1y = 1x += 1
end = time.clock()
print(end - start)

这样就能粗略的估计出需要多少时间得出结果,我的机器大概是0.0004s左右得出计算结果,这样的解决方案一看就不够专业,换一种通用的衡量程序性能的方法cProfile

# encoding: utf-8
import cProfiledef clca():x = 1y = 1while x <= 20:while y <= 33:z = 100 - (x + y)if (z % 3 == 0) and (x * 5 + y * 3 + z / 3 == 100):print("公鸡为%d只,母鸡为%d只,小鸡为%d只" % (x, y, z))y += 1y = 1x += 1if __name__ == '__main__':clca()print(cProfile.run('clca()'))

或者不在主函数中运行clca,直接测算也是可以的,我保留了完整的主体结构,测量结果如下图所示:

因为之前测量的是0.0004s,所以这个测量程序的精度只到0.001s故而无法精准测量了,小程序我也不进行进一步探索怎么修改精度了,只是提供一个方法

# encoding: utf-8
import timex = 1
y = 1start = time.clock()
for x in range(1, 21):for y in range(1, 34):z = 100 - (x + y)if (z % 3 == 0) and (x * 5 + y * 3 + z / 3 == 100):print("公鸡为%d只,母鸡为%d只,小鸡为%d只" % (x, y, z))y += 1y = 1x += 1
end = time.clock()
print(end - start)

把while循环方法改为for循环,消耗时间增长到0.0005s左右,可是我们还可以进一步改进,我们可以对方程通过进一步的推导来简化计算,从方程中可以得出,x=4k 和 y=25-7k 和 z=75+3k 则公鸡的数量一定是4的倍数,母鸡的数量以7递减,小鸡的数量以3递增
这就可以大大简化计算为

# encoding: utf-8
import timex = 1
y = 1start = time.clock()
for x in range(0, 21, 4):for y in range(25, 0, -7):z = 100 - (x + y)if (z % 3 == 0) and (x * 5 + y * 3 + z / 3 == 100):print("公鸡为%d只,母鸡为%d只,小鸡为%d只" % (x, y, z))y += 1y = 1x += 1
end = time.clock()
print(end - start)

运行可知,时间下降到不到0.0001秒,提高了运行效率
二、五家共井
五家共井,甲二绠(汲水用的井绳)不足,如(接上)乙一绠;乙三绠不足,如丙一绠;丙四绠不足,如丁一绠;丁五绠不足,如戊一绠;戊六绠不足,如甲一绠,皆及

# encoding: utf-8for k in range(1, 5):for e in range(1, 500):a = 721 * k - 6 * eb = 721 * k - 2 * ac = 721 * k - 3 * bd = 721 * k - 4 * ce = 721 * k - 5 * dresult1 = a + 6 * eresult2 = b + 2 * aresult3 = c + 3 * bresult4 = d + 4 * cresult5 = e + 5 * dif result1 == result2 == result3 == result4 == result5:print('井深%d:甲家绳长%d乙家绳长%d丙家绳长%d丁家绳长%d戊家绳长%d' % (result1, a, b, c, d, e))

戊家的绳子是最短的,所以以e为循环单位,第二组解算出来就非常吓人了·····

井深721:甲家绳长265乙家绳长191丙家绳长148丁家绳长129戊家绳长76
井深1442:甲家绳长530乙家绳长382丙家绳长296丁家绳长258戊家绳长152

井深1442米的话估计一天啥也不用干光打水玩了,往下愿意算就算去吧,一口井直通地球另一端指日可待

Python 练手程序合集(一)相关推荐

  1. Python 练手程序合集(三)

    六.协同过滤 Slope One是一个可以用于推荐系统的算法,在只有很少的数据时候也能得到一个相对准确的推荐,而且算法很简单, 易于实现, 执行效率高,由此衍生的还有加权 Slope One 算法.双 ...

  2. 55 个 Linux 练手项目合集,打通你的 Linux 任督二脉 !

    说在前头:无论你是通过上面的楼+课程,在老师带领下系统地学习 Linux,还是通过下面的练手教程,自主学习,我们都希望你能够坚持,一步一步来,别怕重复. 关于这50个练手项目:学习任何语言,最终都是通 ...

  3. java编程计算器程序代码_34 个送给 Java 程序员的练手项目合集

    人类一生中,99% 的技能都是靠实践学来的,编程更是如此. 在这一点上,编程和打篮球很像:你得亲自上场去打,才能学会篮球:同样,亲手敲下代码,才能真正学会「编程」.太多人看完一本书.几个 G 的视频后 ...

  4. 33 个送给 Java 程序员的练手项目合集

    人类一生中,99% 的技能都是靠实践学来的,编程更是如此. 人类一生中,99% 的技能都是靠实践学来的,编程更是如此. 在这一点上,编程和打篮球很像:你得亲自上场去打,才能学会篮球:同样,亲手敲下代码 ...

  5. (转)Python学习路径及练手项目合集

    转载自知乎 Wayne Shi,仅仅为了方便收藏查看,侵权删. 阶段1:入门知识 零编程基础的可以先从下面几个教程了解编程及环境入门知识.( 已有编程基础直接从阶段2起步) 1.  编程新手指南 2. ...

  6. python练手程序之猜大小

    #看了前面几个章节,对python最基础的语法有了一定了解.写个程序来验证一下 #程序名:猜大小 #按投骰子的规则来猜大小,用户有初始资金1000,每次下注一定金额,直至用户输光.赢够10000或主动 ...

  7. python练手程序_写的python练习程序

    程序一: print("who do you think I am?") m=input() print("OH,yes!I am %s"%m) 程序二:猜已经 ...

  8. python练手程序_100个python练手小程序

    1.生成200个指定长度的随机码 import random import string def rand_str(num,len=7): f = open('file.txt','w') count ...

  9. python小程序源代码-整理了适合新手的20个Python练手小程序

    100个Python练手小程序,学习python的很好的资料,覆盖了python中的每一部分,可以边学习边练习,更容易掌握python. 本文附带基础视频教程:私信回复[基础]就可以获取的 [程序1] ...

最新文章

  1. 以前不知道的,现在知道了(微机原理)
  2. centos ip配置_vitrualbox虚拟机下centos系统设置固定IP
  3. 创维 linux内核,Linux2.6内核在创维特jx2410平台上的移植四
  4. oracle10 监听日志,windows 清空oracle的监听日志listener.log
  5. mysql用 fifo 记录日志_MySQL一丢丢知识点的了解
  6. 通用的websocket模板代码
  7. YUV格式转换RGB(基于opencv)
  8. string赋值-单引号和双引号的区别(php)
  9. 【iPhone X重磅发布】携A11人工智能芯片登场,人脸识别9大特征
  10. 深度解读B2B与B2C营销策略的差异
  11. 泛微 E9开发视频教程
  12. PDF怎么转换成CAD图纸?PDF转CAD教程
  13. @media scree 手机移动端屏幕自适应
  14. 运行不了cracker.jar?激活MyEclipse
  15. iPhoneX 适配笔记
  16. 动手学Excel数据分析与可视化
  17. 服务器硬盘识别不到d盘,windows10系统本地磁盘找不到d盘如何解决
  18. 在PPT中怎么对图片进行排版?使用SmartArt一键教你搞定!
  19. 单片机c语言p1口转弯灯实验,单片机p1口转弯灯实验程序
  20. transform.invert 预处理逆操作

热门文章

  1. 给我制定一个考研数学一的复习计划
  2. R语言基础函数assign函数
  3. ThinkPad笔记本电脑如何设置Fn热键切换功能
  4. 创业初期,单身vs已婚
  5. 用计算机求平均数ppt,华东师大版八年级数学下册《用计算器求平均数》.ppt
  6. 关于“先定一个小目标,比如挣它一个亿”
  7. pdfbox创建pdf_PDFBox之文档创建
  8. python源码剖析笔记1——Python对象初见
  9. SQL 查看本周的星期一和星期天
  10. 服务器u盘备份系统,套娃自动备份unraid系统u盘