100和尚吃100馒头

2021-06-10 20:24 · 徐小明的博客 · 3次阅读

从前有座山,山里有座庙。庙里有100个和尚。100个和尚吃100个馒头,大和尚一个人吃三个馒头;小和尚三个人吃一个馒头。问有多少个大和尚,多少个小和尚。 100个和尚吃100个馒头

编程解决这种问题,通常都用穷举法。大和尚可能0到100个,小和尚也可能0到100个。有人会说,大和尚最多33个,虽然正确,但这里有人为的因素了:人利用了自身的智慧去做了排除,不是完全由计算机来解决的了。因此,不建议限定大和尚最多33个。

还有一种方法是查找法,大和尚的数量在0到100之间。学计算机的人都知道,用二分查找法效率比较高。

我还用了改进后的穷举法。具体请参考代码。 100个和尚吃100个馒头

最后,对三种方法的运行时间做了比较。完整的代码:

""" 一百和尚吃一百馒头 """

import time

def monksBunsSolver1():

   """ 穷举法,假定大和尚和小和尚分别为x,y """

   for x in range(100):

       for y in range(100):

           if x + y == 100 and 3*x + y /3 ==100.0:

               print(f"方法1:大和尚{x}个,小和尚{y}个。")

def monksBunsSolver2():

   """ 穷举法,假定大和尚和小和尚分别为x,100-x """

   for x in range(100):

       if 3*x + (100 - x) /3 ==100.0:

           print(f"方法2:大和尚{x}个,小和尚{100 - x}个。")

def monksBunsSolver3():

   """ 二分查找法 """

   high,low,guess = 100,0,50

   count = 0 #防止没有答案

   while ((3*guess+(100-guess)/3) != 100.0) and count<100:

       guess = (high + low) // 2

       if guess*3 + (100 - guess)/3 > 100.0:

           high , guess = guess, (guess + low) //2

       elif guess*3 + (100 - guess)/3 < 100.0:

           low, guess = guess, (guess + high) //2

       count += 1

   print(f"方法3:大和尚{guess}个,小和尚{100-guess}个。")

monksBunsSolver1()

monksBunsSolver2()

monksBunsSolver3()

def main():

   """ 测试三种方法的运行时间 """

   startTime = time.time()

   for i in range(50):

       monksBunsSolver1()

   endTime = time.time()

   t1 = endTime - startTime

   startTime = time.time()

   for i in range(50):

       monksBunsSolver2()

   endTime = time.time()

   t2 = endTime - startTime

   startTime = time.time()

   for i in range(50):

       monksBunsSolver3()

   endTime = time.time()

   t3 = endTime - startTime

   print("\n")

   print(f"穷举法运行时间:      {t1}秒")

   print(f"改进版穷举法运行时间:{t2}秒")

   print(f"二分查找法运行时间:  {t3}秒")

if __name__ == "__main__":

   main()

   

运行的结果:三种方法都能找到答案。运行时间情况:

现在,请用类似的方法解决:一付不完整的扑克牌,不知道少了几张。三张三张地数,最后多出来一张牌;五张五张数,最后多出来二张牌;七张七张地数,最后多出来三张。问扑克牌少了几张牌? 100个和尚吃100个馒头

相关文章:

【送美心月饼】中秋节月饼攻略来啦!

水煮、烘烤、五香花生米专用漂白剂

挖到宝!植村秀好用的明明不止是洁颜油!

大连海参、青州蜜、日照绿等着你

【言情新文】穿书校园文,黑化学霸男主/古言甜文,恶毒妖孽男主X温柔女主/围棋天才X小镇少女 2019.08.27

来来来,用“和尚吃馒头”展示下奥数如何毁思维

2021-06-11

100个和尚吃100个馒头 不久前写过一篇《奥数是如何摧残孩子思维能力的》,受到许多人的关注。不少人发消息支持我的观点,既有奥...

量身定制“现”男友,这个抹茶空间的玩法真让人上头!

2021-05-03

金坛雀舌茶叶价格 过去的这个7月,女孩们集体恋爱了,欢天喜地喜提『现男友』,老男人韩商言,从嫌弃到真香,真的太让人上头了。...

人在旅途|第7期《摩梭人的音乐》(主播:午后红茶)

2021-05-12

午后红茶广告歌 点击上方蓝色字体关注「红蓝之声」每晚8点,遇见您情感 | 温暖 | 电台 | 心情后台回复【晚安】,睡前一句暖心话...

香辣臭豆腐的做法,不敢吃街边小摊又想吃怎么办

2021-06-05

臭豆腐的制作方法 香辣臭豆腐材料:臭豆腐(1盒)、红绿辣椒(各1个)、洋葱(半个)、老干妈豆豉酱(适量)、大蒜(适量)、油盐(适量)做...

康师傅绿茶联手百度地图带来“绿动健康好心情”

2021-05-07

康师傅绿茶广告 在这个迅速变化的互联时代,营销也发生着剧烈的变化。在工业时代,传统4P营销以产品为中心,关注Product产品, Pr...

力荐这9本治愈青梅竹马文:你以后要是嫁不出去,我娶你,行了吧?

2021-06-10

公子倾城 维和粽子 ◆ ◆ ◆闹书荒,关注这一个号就够。榜榜导读写一些忧伤的文字,记录着一些琐碎的生活。十指相握给自己取暖...

4种中药减肥茶配方,一般人不知道!

2021-05-07

荷叶减肥茶配方 来源:药店百宝箱微信号减肥茶一直都是流行的减肥方法,但是市面上出售的减肥茶并不是针对减肥者的体质所配制,...

小本创业开奶茶店 年入10万元经验分享

2021-05-17

奶茶店创业计划书 挣钱,是每个小本创业者的最终目的。很多人选择开奶茶店作为小本创业的开始。一个小小的奶茶店如果经营好了,...

加盟地下铁奶茶的5个入口,你用哪款?个个靠谱!

2021-05-26

没关注?伸出手指点这里--- 地下铁奶茶加盟 作为当下极具人气与口碑的致富好品牌,地下铁奶茶品牌背后有实力企业强力助阵,在发...

【权品美食】爱吃炖蛋、蒸蛋、赶紧收藏!

2021-06-11

炖蛋水和蛋的比例 传统蒸蛋 材料:鸡蛋 2个 凉开水 约5汤匙 盐 1/2茶匙 厨房纸巾 1张 香油 1/4茶匙 做法:   【1】 鸡蛋液打散...

【趋势】今年茶叶价格普遍下降,包装趋向更简洁

2021-05-07

金坛雀舌茶叶价格 金坛雀舌茶叶价格 阳春三月,又到新茶上市季节,“明前茶”以其色翠形美,香幽味醇,一直是古今茶客推崇...

酱大骨培训 邯郸孙大妈小吃培训学校

2021-06-03

孙大妈小吃培训学校 酱大骨的由来 酱大骨是由猪大腿骨做成的,有着多方面的养生功效。它的蛋白质含量高于奶粉,其中铁、钠等远...

【大卡司奶茶】加盟大卡司奶茶的好处有哪些?

2021-05-17

大卡司奶茶加盟 品牌名称:大卡司奶茶客服电话:19916065644客服微信:19916065644适合人群:下岗工人,自由创业,二次创业   ...

真惨!全球最可怜、最杯具的不是叙利亚难民,而是......

2021-05-19

我不是粽子是个杯具 中国2:2叙利亚就在刚刚,2:1领先的中国国足在伤补时阶段被这个被战火狂虐的国家比平。全国球迷估计都是这表...

食品安全管理体系审核员 | 新标准转换注册

2021-06-14

食品安全管理体系 新标准转换注册各相关机构、食品安全管理体系审核员:国际标准化组织(ISO)于 2018 年 6 月发布 ISO22000:201...

文章标签