德·梅齐里亚克砝码问题的分析与PVthon解法

来源 :电脑报 | 被引量 : 0次 | 上传用户:baidie123
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读



  在数学史上,有很多未被证明的猜想和定理,它们也成了著名的数学难题,而其中关于数论的问题有很多,今天我们用Python来求解德·梅齐里亚克的砝码问题。以后还将不定期地发布类似问题,欢迎关注。

一、德·梅齐里亚克的砝码问题


  一位商人有一個40磅的砝码,由于跌落在地而碎成4块。后来,称得每块碎片的重量都是整磅数,而且可以用这4块来称从1至40磅之间的任意整数磅的重物。问这4块砝码碎片各重多少?

二、算法分析


  解这个问题挺有意思的,不需要什么高深的数学知识又很好玩。首先我们来参照一下人民币的币值。我们的分币有1、2、5三种币值,两两可以组成1到8之间的若干值,同样,我们在这道砝码问题中第一个要考虑的因素就是排列组合值。1,2,1+2,5,1+5,2+5,1+2+5。
  此外,天平称重的另一个特性就是,砝码可以放在左右任意一个托盘中,所以我们就得到了这个问题的第二个特质:排列组合得出的结果可以取加法,还可以取减法。这样,在上面列出的数字的基础上,我们又得到了2-1,5-1,5-2,5-1-2(就像买东西找零钱一样)。我们发现这些新的值和上面的值有重合,也就是有冗余值,我们的优化过程就是要消除这些冗余值。现在我们得到了两个数学概念:排列组合和加减法。
  根据题意,分析时优先考虑极限情况,砝码的磅数最小的3个数是1、1、1,那剩下的砝码磅数就是37。因而砝码重量范围在Python中用(1。38)表示。但是各种组合形式不明确,对于计算机来说采用枚举算法比较简单。
  1.由于天平可以两边放置砝码,因而砝码就有3种情况,放在左边、不放、放在右边。4个砝码位置的参数用a’b,c,d表示,每个值都设定为一1,0,1。一1为左边表示减去值,在Python中用(一1。2)表示。
  2.设定p,q,r为三个砝码磅数,那么第四个砝码就是(40-p-q-r),假定p不小于q,q不小于r,r不小于40-p-q-r。这样可以有效分割总数40磅,缩小计算范围,也避免重复数据。
  3.用循环来判断1到40磅用什么样的组合表示。不同组合方式用x==a。p+b*q+c‘r+d‘(40-p-q-r)表示,并且x是从1到40。
  4.最后利用集合去重,如果满足x的值正好是1-40的40个整数值,那就可以得到所求的磅值了。


三、程序实现


  根据前面的分析,写出Python程序。代码如图:
  1.p、q、r三重for循环,先确定在1-37整数范围,并且满足条件p<=q<=r。
  定义空集合XX。xx=set()。
  2然后是四个砝码的三种状态组合的4重循环,如果满足r<40-p-q-r,那么在1-40的循环中,将满足x==a*p+b*q+c*r+d*(40-p-q-r)的x值添加到集合xx中,如果XX的长度是40,那就说明1-40的所有值均能组合出来,即输出这4个值。
  3.时间复杂度
  循环值虽然不大,但是8重循环,时间复杂度为37×37×37×40×3×3×3×3=164115720。大约10的8次方。这个运算次数在Python运行时间只需要0.5秒。运行结果如下图。

四、结论


  要能够满足题意的条件.那么小砝码磅数之和所表示数的下一个数应当为最大数减去小砝码磅数之和。因为几个小磅数囊括了其小磅数和内所有数字才能满足这个砝码问题,下一个磅数,小磅数和已经不能满足,大数也满足不了,那么就只能用大数减去小磅数和得到,即下一个磅数是y=2*x+l,x为小磅数之和。
  法国数学家G_B.德·梅齐里亚克(1581~1638年)在他的著作中解答了这题(因此也称这个问题是德·梅齐里亚克的砝码问题)。为了使两个砝码A与B能称出最多种重量,必须是1磅和3磅,因为用它们能称出1、2(=3-1)、3(=2*1+1)、4(=3+1)磅的重物。如选第三块砝码c,则它的重量为2x(1+3)+1=9磅,则用它们可称出1至9+4=13磅间的所有整数磅重物。最后选第四块砝码D,使它重量为2x13+1=27磅,那么用这四块砝码能称出从1至27+13=40磅的重物。因此,这四块砝码的重量分别为1、3、9、27磅,根据这个理论之后的数字则是81。243。

五、小结


  学习编程不能只要让学生做出多么好的程序,而是让学生在学习中,尝试解决一些问题,掌握分析问题、解决问题的方法,提高解决问题的能力,并且知道独立思考问题和团结协作的重要作用。
其他文献
暑假来临,如何安排孩子的假期生活是家长关心的事情。“就怕小孩在家一天到晚都在打游戏。”市民张女士说出了许多家长的担忧。全媒体記者连日来调查发现,尽管大部分网游上线未成年人防沉迷系统,但实名认证相当简陋,并且在游戏电商平台、游戏账号交易平台,30~88元就能买到一个已解防沉迷的账号。  如何防止未成年人沉迷网游是多年来大家关注的问题。2019年10月,国家新闻出版署印发《关于防止未成年人沉迷网络游戏
期刊
大屏金属机身,重量2.43kg  机械师F117-FPlus是一款17.3英寸的大屏游戏本,A面采用的是金属材质,加上阳极氧化工艺和拉丝纹理处理,整机的外壳质感挺不错。屏幕面为时下流行的窄边框设计,屏幕上方保留了摄像头,下方边框稍微宽一些,好在屏幕够大,为17.3英寸,实际使用时基本不会影响观看效果。  机身重量是机械师F117-FPlus的一个看点——该机整机重量仅为2.43kg,在17.3英寸
期刊
上世纪80年代的游戏权利金制度  随着微软新世代主机Xbox Series XIS陆续在全球市场发售,无数玩家翘首以待的微软国行游戏主机在天猫、京东平台正式开售。预售期快速告罄的火爆场面,也让玩家们经历了一次“手慢无”的抢购体验。  随着Xbox Series XIS的发售,越来越多玩家加入到Xbox阵营,而每一位拿到新主机的玩家所需要做的一项重要功课就是了解和开通Xbox游戏通行证订阅服务Xbo
期刊
站长点评:针对准大学生暑期的装机需求,前几周站长给大家推荐了几套基于AMD锐龙处理器的配置。考虑到部分玩家想购买Intcl平台的产品,所以本期站长就为大家带来一套中端的高性能配置,供大家在装机时参考。  对于追求高性能的玩家来说,在装机时自然要选择第11代酷睿i5当中的旗舰型号——酷睿i511600KF。這款处理器依然是6核12线程的规格,虽说3.9GHz的基础频率、4.9GHz的最高频率以及4.
期刊
每到暑期就是全家一起旅游的旺季。出门在外,要是手机续航时间不够长,没用多久就没电了怎么办呢?只要随身携带了这些充电神器,就能让你的手机有充足的电量可以使用。航嘉20W PD快速充电器  参考价格:69元  一有机会就给手机充电,是很多用户对抗手机续航不足的主要方法,所以你得准备一款充电速度怏的充电器。夏天大家都穿得比较少,特别是很多女生只会背一个小包包出门,这就对快速充电器的尺寸提出了较高的要求。
期刊
批量完成图片的压缩  虽然网上有很多图片压缩服务,但是这些服务最大的问题就是只能一张一张图片进行压缩操作。如果用户要想批量操作的话.那么只能借助于其他图片压缩工具,而Imagine就是一个不错的选择。  先通过浏览器打开这款工具软件的官方网站(https://github.com/meowtec/Imagine),点击右侧的Releases链接后,在打开的网页列表中下载Imagine-0.6.1.
期刊
寄宿的少女  要说放置游戏,男女通杀的“呱儿子”——《旅行青蛙》就以简约而颇具新意的旅行玩法,让不少玩家沉迷其中,对养了这样一个“儿子”可是百般关照,不仅早早给他备好食物,更是时时刻刻要去看看他回来没,给你带了些什么?甚至不少人还调侃比关心自己家孩子还要在意“呱儿子”的情况,真是让人无法自拔。  可惜的是,这样一个高光游戏,最终还是昙花一现,包括后面出来的中国版本依旧如此。你要说它不吸引人吗?非也
期刊
高端平台对电源要求较高  高端处理器、显卡因为规格高,功耗自然降不下来。就拿Intel最新的第11代醋睿来说,其采用的14nrn工艺潜力已经挖掘殆尽,可产品又要冲击高频率,所以只得大幅牺牲功耗来实现这一点。别看酷睿i9 11900K的TDP只有125W,似乎并不高,但是开启ABT技术,将温度墙限制放宽到100℃,从而实现全核5.1GHz的睿频频率之后,其满载功耗会达到300W以上。而就算是中端旗舰
期刊
找次品是一道经典的小学奥数题,通过“找次品”理解优化思想,培养推理能力,让学生充分感受到数学与日常生活的紧密联系,以往我们是通过画图、列表的形式来进行解答,现在我们要通过Scratch编程来完成解题,这需要对问题有清晰的认识,学会建立合适的数学模型。  找次品:7个零件中有一个次品(次品重一些),假如用天平称重,至少称几次能保证找出次品呢?  称重方法:(1)将7个零件分成3份(3,3,1),天平
期刊
作為一个每天服务上百甚至数百购机咨询的公众号,我们注意到有非常多的读者关心笔记本的键盘手感。很多咨询者都会在需求描述中加一句“键盘手感要好”。所以,在这里,我们对各家笔记本键盘的情况做一个简要的盘点。  先说说市场占有率最高的联想。联想的笔记本键盘水平总体上比较高,虽然旗下的ThinkPad品牌在键盘手感上相比早年有所下降(无论哪个系列都比较明显),但目前与其他厂商横向比较来看,依然是相对较好的,
期刊