猴子分桃问题
关于猴子分桃的算法讲解
关于猴子分桃的算法讲解猴子分桃递归算法分析。
/*X个桃子有5只猴子第一只猴子把x个桃子分了5分还多出一个他把多了那个扔进大海拿走了一份第二只猴子也是如此等到第五只猴子海滩至少能分到1个桃子。
问海滩上原来x是多少个桃子。
非递归算法描述:数学抽象:假设海滩上现在有x个桃子,那么x向下再分一次,也就是n-1只猴子有桃可分的条件必须满足(x-1)是5的倍数。
下一只猴子再分桃,就是x的5分之4. N-1只猴子再分桃的条件就必须满足(x-1)*4/5 依次类推算法设计:一个数x去判断x-1是否能被5整除。
如果可以,则把自己的五分之四拿出来作为下一次分桃的基数,再进行下一轮判断。
总共判断5轮,每一轮满足条件记为真,不满足记为假。
只要5轮都为真则找到x 否则 x继续++ 。
实现下一次5轮判断。
*/namespace递归法_猴子分桃子{class Program{static int fen()//返回海滩上原来最少多少桃子{int m;bool check =false; //用于判断是否执行了五次,亦可用j==5作为判 //断条件int i =0;while (true){i++;m = i;for (int j =0; j <5; j++){if ((m -1) %5!=0)//判断m-1是否被 //整除,亦可用(m-1)%5!=0代替{check =false;break;}else{m = (m -1) *4/5;check =true;}}if (check ==true){return i;}}}//递归算法/*递归算法数学抽象,与非递归刚好相反,递归是倒退,从最后一只猴子向上推理。
假设当前猴子有x个桃子,那么它对于下一轮的猴子来说,x-1要能分5份,而对上一轮的猴子还说,它是上一轮的5分之一。
算法设计:一个变量记录当前是第几只猴子。
一个变量记录当前猴子面前有原来桃子的总数。
如果当前就剩1只猴子则返回所有的桃子总数,否则判断当前的桃子-1 时候够下一轮猴子平分5分,而且对于上一轮的猴子我是不是上面的4/5 求上一轮 x*5%4==0 如果是则上一轮的桃子是自己的5倍多1个而且都在总数-- 否则不满足条件则当前猴子总数不变,桃子总数++。
五猴分桃类型题简易通解公式及推导
“五猴分桃”类型题简易通解公式及推导“五猴分桃”的前身是“水手分椰子”。
这是一个非常有名的趣味数学难题,于1926年首先刊登在美国的邮报上。
剧说,最早是由伟大物理学家狄拉克提出来的,这一貌似简单的问题曾困扰住了他,为了获得简便的计算方法,他把问题提供给当时的一些数学家,但没有得到满意的结果。
1979年,“诺贝尔"物理学奖获得者李政道博士在“中国科技大学少年班”讲学时,特意提到此题;此后,研究该题的简易计算方法,迅速风靡国内。
曾对“五水手分椰子”的广泛流传, 起过重要作用的, 著名现代数理逻辑学家怀德海, 曾用高阶差分方程理论的通解和特解的关系,对“水手分椰子”一题, 给出过一个答案为(-4)的巧妙特解。
近十多年来,在后来者的不断努力下,一些比较简便的方法也逐步涌现。
但严格的来说:目前所取得的成果,其本上还是仅限于“五猴分桃”这样一个具体的题目上,离全面彻底而又简捷地求解所有这种类型的题目,还存在着一定的距离。
本人曾于1979年, 在月刊《中国青年》看到(五猴分桃)一题, 并用不定方程求得其解。
当时,本人觉得就题论题意义己不大。
于是通过五、六天的努力,终于演算出,能求解所有这种类题型的完整、简捷的“通解公式”(影响答案的各困素可以任意取值, 并可非常简易的求解,详见下面的计算公式和例题):但是,由于当时自己在乡下,信息闭塞,不知道这个“通解公式”有何意义。
一幌三十多年又过去了,前段时间, 因经常上上网,于是惊呀发现:寻找“五猴分桃”类型题的简易计算方法,竟是一个具有深刻背景的,已研论了二、三十年的热门数学话题;而且至今仍未找到完美解决方法。
于是自己边回想、边演算,终于又重新推导出了“五猴分桃”类型题的简易“通解公式”。
现将其发表如下,与大家共同分享。
“水手分椰子”类型题完整而又简易的通解公式:y=a n-db/cy-被分的某东西的总个数,a-每次分的总份数(一般情况下,是总人数),n-总共分的次数,c-分a份后拿走的份数,b-每次分a份后的余数,d-每次分a份拿走c份后剩下再分的份数,注;当b/c不为自然数时,则此时该题无解, 也即y无解。
把一些桃子分给猴子吃.每只猴子分...
考点:盈亏问题 专题:传统应用题专题 分析:两次分物的总差额是:12+4=16(个),两次猴子的差额是:7-5=2(只),那么每只猴子分到:16÷2=8(个);据此 解答. 解答: 解:(12+4)÷(7-5) =16÷2 =8(个); 答:每只猴子分到8个桃子. 点评:盈亏问题的解答思路是:通过比较已知条件,找出两个相关的差数,再根据盈亏问题的基本数量关系:一次有余 (盈),一次不够(亏),可用公式:(盈+亏)÷(两次每人分配数的差)=人数解答.
小学数学 数学故事 猴子分桃
猴子分桃
海滩上有一堆桃子,是两只猴子的共有财产。
猴子性急,有时也很正直。
第一只猴子来到海滩后想要取走自己的一份,于是便把桃子均分为两堆,发现还多一个,便把多余的一个扔进大海,取走自己应得的一份。
第二只猴子来到海滩后也想取走自己的一份.猴子总归是猴子,它无法知道伙伴已取走一份。
于是第二只猴子又把桃子均分为两堆,发现还多一个,便把多余的一个扔进大海,取走自己应得的一份.
如果原有的桃子数不小于100,那么第一只猴子至少可以取走几个桃子呢?
用算术去解也许不容易,用“列出代数式"的方法去试试看:
如果第二只猴子取走的桃子数用A表示,那么,取走前它所面临的桃子数应为2A+1;(想一想,为什么?)
第一只猴子留下的桃子数既然为 (2A+l),那么,它取走的桃子数也应为2A+1;
第一只猴子取走前,它所面临的桃子数应为(2A+1)+(2A+1)+1,即4A+3.
这说明,海滩上原有桃子数为4A+3,但这堆桃子不少于100个,所以A
不小于25.因此第一只猴子至少可以取走51(=2×25+1)个桃子.
回顾整个解题过程,我们总是一步步地“先把问题中与数量有关的词语,用含有数、字母和运算符号的式子表示出来",也就是说,“列出代数式”对解题起到了重要作用。
思考:如果这堆桃子是3只猴子的共有财产,问题又该如何解决呢?如果是4只、5只猴子的共有财产呢?。
数学故事(三四年级适用)
数学故事(三四年级适用)故事一:猴子分桃在美丽的花果山上,住着一群猴子。
一天,猴王想给一群小猴子分桃子。
猴王问小猴子:“我给8个桃子,平均分给4只小猴子,可以吗?”小猴子摇头,觉得分得太少了,大声喊道:“不行!不行!”猴王听了,只好提高标准:“好吧,我给80个桃子,平均分给40只小猴子,怎么样?”小猴子贪婪地说:“大王,请您再多给点吧!”猴王听了,就更慷慨了:“我给你们800个桃子,平均分给400只小猴子,这下总该满意了吧!”小猴子笑了,猴王也笑了。
那么,谁最聪明呢?为什么?(相关课题:商不变性质)故事二:王爷分饼在古代,一位王爷去山上看他的儿子练武。
兄弟几个见到父王来了,都围了上来。
王爷说:“孩子们,父王今天带来了你们最喜欢吃的大饼。
”说着,王爷取出一个大饼,平均分成两份,给了老大一块。
老二很贪心,说:“父王,我想要两块饼。
”于是,王爷把第二块饼平均分成四份,给了老二两块。
老三更贪心,说:“父王,给我三块饼。
”王爷又把第三块饼平均分成六份,给了他三块。
大哥觉得老四最小,应该给他六块,于是说:“父王,老四最小,应该给他六块。
”XXX听了非常高兴,觉得父王给他最多。
那么,你觉得谁得到的最多呢?(相关课题:分数的基本性质)故事三:XXX的生死在古代,有一位糊涂的县官,听信他的师爷的谗言,抓了无辜的XXX。
在审问时,他对XXX说:“明天给你最后一次机会,到时我这里有两枚签,一枚签上写着‘死’字,另一枚签上写着‘生’字,你抽到哪一枚签,就判你什么。
”如果让XXX抽签,可能会怎样呢?可是,想害死XXX的师爷在两个签上都写了一个“死”字。
幸亏XXX的一位朋友把这个消息告诉了他。
第二天,县官在开堂时,让XXX抽签。
XXX抽了一枚签,连忙吞进肚子里。
县官只好打开另一枚签,发现上面写着“死”字,以为XXX抽到的是“生”字签,就只好放了XXX。
(相关课题:可能性)故事四:小猪算算术XXX在算术课上研究加法和减法。
老师问小猪:“如果你有3个苹果,你朋友给你2个苹果,你一共有几个苹果?”小猪算了一下,说:“我有5个苹果。
敬献给李政道博士——五猴分桃类型题简易通解公式上传.doc2
敬献给若贝尔奖获得者李政道博士——五猴分桃类型题简易通解公式(完善版)序:“五猴分桃问题”的前身是国外著名的“水手分椰子问题”,剧说,最早是由伟大物理学家狄拉克于1926年提出来的, 随后, 在经过美国数学科普大师马丁* 加德纳的介绍、推广后,该题得到了更为广泛的流传。
1979年,“诺贝尔奖”获得者李政道博士, 序:“五猴分桃问题”的前身是国外著名的“水手分椰子问题”,剧说, 在“中国科技大学少班”讲学时,特意提到此题。
此后, 研究该题的简易计算方法,迅速风靡国内曾对“水手分椰子”的广泛流传起过重要作用的, 著名现代数理逻辑学家怀德海, 对此题给出过一个答案为(-4)巧妙的特解。
在后来者的不断努力下,一些比较简便的方法也逐步出现。
但严格的来说:目前所取得的成果,基本上还是局限于“五猴分桃”这一个具体题目上,离全面而又简捷地求解所有这种类型的题目,还存在着较大的距离。
1979年,本人有幸在月刊《中国青年》看到了“五猴分桃”一题,并用不定方程求得其解。
随后演算推导出能解决所有这种类题型目的简易通解公式:y=a n -db/c 。
但直到前段时期才惊呀发现: 寻找“五猴分桃”类型题的简易计算方法,竟是一个国内、外已研讨了数十年的热门话题,而且至今仍未找到较好解决办法。
于是本人通过继续对该问题的分析研究,进一步完善了该简易通解公式的求解体系,现发表与大家共同分享:一,五猴分桃类型题简易通解公式及特殊形式:1.五猴分桃问题的简易通解公式 y=a(a/m)n-1-db/c其中:y ── 被分的桃子的总个数n ── 总共分的次数(可为任意数)a ── 每次分的份数, (可为任意数)b ── 每次分a 份后的余数.c ──每次分a份后拿走的份数,d ──每次分a份后拿走c份后,剩下再分的份数.m —— (a/d)的最大公约数注:(1)在上试公式中,按照这种类型题题意的要求;y、a、b、c、d、n、m都为正整数,(2)当b/c不为正整数时,题目本身无解;若b/c为正整数时,则题目必定有解(后面会有论述)。
小班社会小猴子分桃子教案反思
小班社会小猴子分桃子教案反思1、小班社会小猴子分桃子教案反思小班社会:小猴子分桃子活动目标:1.孩子可以主动与长辈和同龄人分享食物。
2、幼儿初步掌握“请您吃…….”并能主动的运用简单的礼貌用语。
3、让幼儿尝试运用色彩来表现不同的情感,抒发内心的感受。
4.能够大胆清晰的表达自己的观点,体验成功的快乐。
活动:1。
把猴子分成桃子的挂图,猴子的父亲、母亲、祖母、祖父和猴子的照片,以及2。
每人一份香蕉食品。
3、小鸡、松鼠、兔子等图片。
活动过程:一、创设情境,引导幼儿看图讲述1、师:有一只小动物来到了我们班,我们一起看看他会是谁?小侯家有五口人,爷爷奶奶,父母,猴子。
这天小猴摘了许多的桃子,他想分给大家,小朋友你猜猜,小猴会把桃子分给谁?2、师:你们想了这么多,那小猴在家里会分给谁呢?小猴会对他们说些什么呢?爷爷会对小猴说什么呢?3、师:宝宝们真聪明,小猴对爷爷说:“爷爷,请您吃桃子。
”爷爷说:“谢谢。
”小猴说:“不用谢。
”宝宝们你们猜猜,小猴又把桃子分给谁呢?对他们说了什么?他们对小猴说了什么呢?依次出示奶奶爸爸妈妈。
二、帮助小猴分桃子,体会分享1、小猴还想吧桃子分给她的好朋友,可是小猴现在有事,去不了了,怎么办呢?我们一起帮助她把桃子送给他的好朋友好吗?那我们应该说什么呢?你想送给谁就把桃子放在她的小筐里,我们开始吧。
2、小猴把桃子分给了大家,大家都很开心,你帮助了小猴,你们开心吗?那我们一起跳个舞庆祝一下吧。
(放音乐)三、吃香蕉,学会礼貌用语1、宝宝们真棒,小猴为了感谢你们,他请你们吃香蕉,小猴说:“请您吃香蕉.”我们应该说什么呀?2、宝宝们真不错,我们的小手是干净的,那宝宝们就把手里的香蕉剥了皮,送给客人老师吧,那我们应该对客人说什么呢?我们要做一个有礼貌的好孩子。
活动反思:整个活动我以一个故事贯穿始终,游戏性强,幼儿参与的部分较多,所以整个活动幼儿的注意力完全集中在活动中,回答问题活跃、积极、课堂纪律良好。
经典数学小故事《猴子分桃》很有意思
经典数学小故事《猴子分桃》很有意思经典数学小故事《猴子分桃》专门有意思海滩上有一堆桃子,是两只猴子的共有财产。
猴子性急,有时也专门正直。
第一只猴子来到海滩后想要取走自己的一份,因此便把桃子均分为两堆,发觉还多一个,便把余外的一个扔进大海,取走自己应得的一份。
第二只猴子来到海滩后也想取走自己的一份。
猴子总归是猴子,它无法明白伙伴已取走一份。
因此第二只猴子又把桃子均分为两堆,发觉还多一个,便把余外的一个扔进大海,取走自己应得的一份。
假如原有的桃子数不小于100,那么第一只猴子至少能够取走几个桃子呢?用算术去解也许不容易,用“列出代数式”的方法去试试看:假如第二只猴子取走的桃子数用A表示,那么,取走前它所面临的桃子数应为2A+1;(想一想,什么缘故?)第一只猴子留下的桃子数既然为(2A+l),那么,它取走的桃子数也应为2A+1;第一只猴子取走前,它所面临的桃子数应为(2A+1)+(2A+1)+1,即4A+3。
这说明,海滩上原有桃子数为4A+3,但这堆桃子许多于100个,因此A不小于25。
因此第一只猴子至少能够取走51(=2×25+1)个桃子。
家庭是幼儿语言活动的重要环境,为了与家长配合做好幼儿阅读训练工作,小孩一入园就召开家长会,给家长提出早期抓好幼儿阅读的要求。
我把幼儿在园里的阅读活动及阅读情形及时传递给家长,要求小孩回家向家长朗诵儿歌,表演故事。
我和家长共同配合,一道训练,幼儿的阅读能力提高专门快。
宋以后,京师所设小学馆和武学堂中的教师称谓皆称之为“教谕”。
至元明清之县学一律循之不变。
明朝入选翰林院的进士之师称“教习”。
到清末,学堂兴起,各科教师仍沿用“教习”一称。
事实上“教谕”在明清时还有学官一意,即主管县一级的教育生员。
而相应府和州掌管教育生员者则谓“教授”和“学正”。
“教授”“学正”和“教谕”的副手一律称“训导”。
于民间,专门是汉代以后,关于在“校”或“学”中传授经学者也称为“经师”。
猴子分桃问题
猴子分桃问题★实验任务动物园里的n只猴子编号为1,2,…,n,依次排成一队等待饲养员按规则分桃。
动物园的分桃规则是每只猴子可分得m个桃子,但必须排队领取。
饲养员循环地每次取出1 个,2 个,…,k个桃放入筐中,由排在队首的猴子领取。
取到筐中的桃子数为k 后,又重新从1开始。
当筐中桃子数加上队首猴子已取得的桃子数不超过m 时,队首的猴子可以全部取出筐中桃子。
取得桃子总数不足m个的猴子,继续到队尾排队等候。
当筐中桃子数加上队首猴子已取得的桃子数超过m时,队首的猴子只能取满m个,然后离开队列,筐中剩余的桃子由下一只猴子取用。
上述分桃过程一直进行到每只猴子都分到m 个桃子。
对于给定的n,k和m,模拟上述猴子分桃过程。
★数据输入第1 行中有3 个正整数n,k 和m,分别表示有n 只猴子,每次最多取k个桃到筐中,每只猴子最终都分到m个桃子。
★数据输出将分桃过程中每只猴子离开队列的次序依次输出输入示例输出示例5 3 401 3 52 4PS:有一种情况上面的问题没有描述,就是当筐中桃子数加上队首猴子已取得的桃子数正好等于m时,按照给的例子应该是管理员要往框中放k个桃子。
这是一个明显的队列问题,所以用queue写了一个,看对大家有帮助不,遗憾的是回收内存时老是出错,于是就没有回收,会造成内存泄露,不过对这个问题而言影响不大。
有什么办法可以解决可以告诉我,暂时不想研究了。
#include <iostream>#include <queue>using namespace std;class monkey{public:int id;int peach;monkey(int imky){id=imky;peach=0;}monkey(const monkey &mkycopy) //复制构造函数{id=mkycopy.id;peach=mkycopy.peach;}};int main(){int n,m,k;cout<<"monkey number:n=";cin>>n;cout<<"k=";cin>>k;cout<<"m=";cin>>m;int ik=1; //放入框中的桃子数,初始为1bool mkypop=false; //有猴子出列且框中还有剩余桃子int peachsy=0; //猴子出列时框中剩余的桃子数queue<monkey>mky; //n个猴子初始化并且入队列for(int i=1;i<=n;++i){monkey *mkynew=new monkey(i);mky.push(*mkynew);}while(ik){monkey mkytemp=mky.front();if(mkypop==false){mkytemp.peach+=ik;ik++;if(ik==k+1)ik=1;}elsemkytemp.peach+=peachsy;if(mkytemp.peach<m) //桃子个数不足m个,排到队尾{mkypop=false;mky.pop();mky.push(mkytemp);}else //桃子大于等于m个,出列{cout<<mky.front().id;peachsy=mkytemp.peach-m;if(peachsy!=0)mkypop=true;mkytemp.peach=m;mky.pop();// delete &mkytemp; //删除申请的内存,会报错。
数学小知识:不等式:猴子分桃的故事
猴子分桃的故事
海滩上有一堆桃子,是两只猴子的共有财产。
猴子性急,有时也很正直。
第一只猴子来到海滩后想要取走自己的一份,于是便把桃子均分为两堆,发现还多一个,便把多余的一个扔进大海,取走自己应得的一份。
第二只猴子来到海滩后也想取走自己的一份。
猴子总归是猴子,它无法知道伙伴已取走一份。
于是第二只猴子又把桃子均分为两堆,发现还多一个,便把多余的一个扔进大海,取走自己应得的一份。
如果原有的桃子数不小于100,那么第一只猴子至少可以取走几个桃子呢?
用算术去解也许不容易,用“列出代数式”的方法去试试看:
如果第二只猴子取走的桃子数用A表示,那么,取走前它所面临的桃子数应为2A+1;(想一想,为什么)
第一只猴子留下的桃子数既然为(2A+l),那么,它取走的桃子数也应为2A+1;
第一只猴子取走前,它所面临的桃子数应为(2A+1)+(2A+1)+1,即4A+3。
这说明,海滩上原有桃子数为4A+3,但这堆桃子不少于100个,所以A不小于25。
因此第一只猴子至少可以取走51(=2×25+1)个桃子。
回顾整个解题过程,我们总是一步步地“先把问题中与数量有关的词语,用含有数、字母和运算符号的式子表示出来”,也就是说,“列出代数式”对解题起到了重要作用。
思考:如果这堆桃子是3只猴子的共有财产,问题又该如何解决呢如果是4只、5只猴子的共有财产呢。
五猴分桃问题
1979年,诺贝尔奖获得者李政道教授到中国科技大学讲学,他给少年班的同学出了这样一道算术题:有5只猴子在海边发现一堆桃子,决定第二天来平分.第二天清晨,第一只猴子最早来到,它左分右分分不开,就朝海里扔了一只,恰好可以分成5份,它拿上自己的一份走了.第2,3,4,5只猴子也遇到同样的问题,采用了同样的方法,都是扔掉一只后,恰好可以分成5份.问这堆桃子至少有多少只.据说没有一个同学能当场做出答案.怎么解?我在小学学竞赛的时候曾遇到了这个题,当时百思不得其解。
后来上高中后用递推数列解决了此题自以为很有成就感,后在一本书上看到的解法既揭示了问题的本质又异常简单。
突然想起这道趣题不敢独享特与大家分享。
如果借4个挑子的话。
恰好每次都能平分成5份。
就是说每次拿的桃子和扔了的加拿了的是一样多。
设开始有x 个桃子借了4个后就是(x+4)个桃子。
每次就余下前次对应的4/5,借了4个桃子后等第五只猴子来过后应该余下的桃子是54()(4)5x 个 x+4必须是5的5次方的倍数所以x 至少是3121,此时余下的桃子是1024个但借了的4个要还回去,实际余下的是1020个。
一道经典难题就轻松解决了,我们学习数学就是去享受思考的过程。
C++ 五猴分桃5只猴子一起摘了一大堆桃子,晚上有一只猴子醒来发现其他猴子都睡着了,就起来吃了一个桃子,然后将剩余的桃子恰好平均分成5份,自己拿了其中的一份藏起来,然后去睡觉.第二只猴子醒来发现其他猴子都睡着了,就像第一只猴一样先吃了一个桃子,然后将其它的桃子又恰好平均分成5份,自已也拿了其中的一份藏起来,接着又去睡觉.第三只,第四只,第五只猴都像第一第二只猴一样做了,现问:这5只猴至少摘了多少个桃子?3121个*/#include "iostream.h"void main(){long k,houzi=1,i=4,m_find=0;float n;while(i<50000){n=(float)i*5/4+1;if(n==(int)n){houzi=1;while(houzi<6){k=(long)n;n=(float)k*5/4+1;if(n==(int)n)houzi++;elsebreak;if(houzi==5){m_find++;cout<<"第"<<m_find<<"次找到"<<endl;cout<<"总的桃子有"<<n<<"个"<<endl;}}i++;}elsei++;}}5个猴子摘了一堆桃子,约好第二天早上来分。
五猴分桃_故事真相
五猴分桃话说5个猴子采了一堆桃,太累了就在桃旁边睡着了。
第一个猴子醒来后,把桃子分成5份,但多了一个,它就把这个吃了,然后拿走一份,把剩下4份又合在一起走了。
第二个猴子醒来后,把剩下这堆桃又分成5份,还是多了一个它先吃了,拿走一份把剩下4份合拢。
以下三个猴子都是这样。
请问,原来至少有多少个桃?最后至少剩下多少个桃?A、解法一,从第一个猴子开始。
假设原有桃个数为X,则第一个猴子走后,还剩下4/5 x (X – 1)这个式子很重要,以后每个猴子走后留下的桃都是这样的式子。
但是为了书写方便,以后我们把式子中的乘号省掉,写成:4/5(X – 1)第二个猴子走后,还剩下:4/5[4/5(X – 1) - 1]第三个猴子走后,剩下:4/5{4/5[4/5(X – 1) - 1] - 1}第四个猴子走后,剩下:4/5<4/5{4/5[4/5(X – 1) - 1] - 1} – 1>第五个猴子走后,剩下:4/5<4/5<4/5{4/5[4/5(X – 1) - 1] - 1} – 1> - 1>这式子真是眼花缭乱,刚括弧就用了5层,现在把括弧从里向外一层层打开:4/5x4/5<4/5{4/5[4/5(X – 1) - 1] - 1} – 1> - 4/5 =4/5x4/5x4/5{4/5[4/5(X – 1) - 1] - 1} – 4/5x4/5 - 4/5 =4/5x4/5x4/5x4/5[4/5(X – 1) - 1] – 4/5x4/5x4/5 - 4/5x4/5 - 4/5 =4/5x4/5x4/5x4/5x4/5(X – 1) – 4/5x4/5x4/5x4/5 – 4/5x4/5x4/5 - 4/5x4/5 - 4/5 =4/5x4/5x4/5x4/5x4/5X –4/5x4/5x4/5x4/5x4/5 –4/5x4/5x4/5x4/5 –4/5x4/5x4/5 - 4/5x4/5 - 4/5这个式子用简单的数学符号表示,就是:45/55X – 45/55– 44/54– 43/53– 42/52– 4/5让我们把它再做一些变换,目的是把式子中的所有分数都变成整数:45/55X – 45/55– 44/54– 43/53– 42/52– 4/5 =45/55X + 4x45/55– 4x45/55– 45/55– 44/54– 43/53– 42/52– 4/5 =45/55(X+4) – (4x45/55 + 45/55 + 44/54 + 43/53 + 42/52 + 4/5) =这里先看下4x45/55 + 45/55的计算结果是什么,这么看有点儿眼花,我们用M来代替45/55:则4x45/55 + 45/55 = 4M + M = 5M所以:4x45/55 + 45/55 = 5x45/55 = 5x4/5x44/54 = 4x 44/54相当于分子分母同时约去一个5这样45/55(X+4) – (4x45/55 + 45/55 + 44/54 + 43/53 + 42/52 + 4/5) =45/55(X+4) – (4x 44/54 + 44/54 + 43/53 + 42/52 + 4/5) =45/55(X+4) – (4x43/53 + 43/53 + 42/52 + 4/5) =45/55(X+4) – (4x 42/52 + 42/52 + 4/5) =45/55(X+4) – (4x 42/52 + 42/52 + 4/5) =45/55(X+4) – (4x 4/5 + 4/5) =45/55(X+4) – 4第五个猴子走后剩下的桃子从眼花缭乱的式子简化成了45/55(X+4) – 4从这个式子可以看出,如果让整个式子是整数(当然是整数,没说哪只猴子吃了半个桃),则:X+4至少等于55即5x5x5x5x5 = 3125至此真相大白,原来桃至少为:X = 3125 -4 = 3121个最后剩下的桃至少为:45/55(X+4) – 4 = 45– 4 = 1020个B、解法二,从最后一个猴子算起。
二年级数学下册猴王分桃
二年级数学下册第
猴王分桃
风景秀丽的花果山上住着一群猴子,有一天猴王要给一群小猴子分桃子。
猴王跟小猴说:“我给8个桃,平均分给4只小猴,行吗?”小猴子听后连忙摇头,嫌分得太少了,大声喊道:“不行!不行!”猴王缓了口气说:“好吧!我给80个桃,平均分给40只小猴怎么样?”小猴子贪婪地说:“大王,请您高抬贵手多给点行吗?”猴王立即拍着胸脯,慷慨地说:“我给你们800个桃,平均分给400只小猴,这下总该满意了吧!”小猴子笑了,猴王也笑了。
谁的笑是聪明的呢?为什么?
二年级数学下册第。
五猴分桃问题的两种解法
五猴分桃问题的两种解法
“五猴分桃”这个问题,据说是由大物理学家狄拉克提出的,许多人尝试着做过,包括狄拉克本人在内都没有找到很简便的解法。
一堆毛桃五猴分,分来分去分不均;于是约定先睡觉,醒来以后再讨论。
大猴乖巧施心计,不占便宜不甘心,跑来偷偷吃一个,剩余刚能五等份,拿走自己应得数,走时喜得走不稳。
二猴醒后也跑来,先吃一个过过瘾,剩余也能被五除,堂而皇之拿一份。
其余几猴均如此,个个猴儿都不蠢。
问:毛桃最少是多少?
【解法一】设有n个桃子,列下表:
即:256n-2101能整除3125。
设256n-2101是3125的k倍,则:256n=3125k+2101,构造变形得:
n=12k+8+53*(k+1)/256
当k取255时,n的值最小。
n=12*255+8+53*1=3121
【解法二】设这一堆桃子至少有x个,先借给它们4个,5个猴子分别拿了 a、b、c、d 、e个桃子(其中包括吃掉的一个),则可得:
e应为整数,而4的4次方不能被5的5次方整除,只有(x+4)应是5的5次方的倍数,所以
(x+4)=3125k(k取自然数)
当k=1时,x=3121
如有好的解法请在评论中给出,在此感谢!。
奥数-猴子分桃
猴子分桃问题(18年5月11日)一列火车从起点站出发后,乘客一直只下车不上车。
在经过第1个车站时,有1名乘客下车;在经过第2个车站时,车上乘客总数的1/5都下车了。
以后在奇数车站,都有1名乘客下车;在偶数车站,车上乘客总数的1/5下车。
在列车经过10个车站后,车上仍然有乘客。
请问火车上原来至少有多少名乘客?答案:3121名。
讲解思路:这道题是猴子分桃问题变形,该问题如果列方程求解过程很复杂,诺奖得主李政道曾给出一个巧妙的解法。
文末思考题就是猴子分桃的原题。
步骤1:先思考第一个问题,如果最初的乘客数是n,n+4是不是5的整数倍?这个问题虽然很简单,但正是李政道先生解法的巧妙之处。
经过第1个车站下1人,说明最初的乘客数n-1是5的整数倍,而n+4=n-1+5,因此n+4也是5的整数倍。
步骤2:再思考第二个问题,经过2个车站后乘客数是多少?经过1个车站后是n-1,经过2个车站后是(n-1)*4/5,在此李先生做了一个巧妙的变换,将人数表达成为(n+4)*4/5-4。
变换的目的是为了应用步骤1的结论。
步骤3:综合上述几个问题,由于第3、4站相当于重复了前2站,因此重复步骤1的过程,经过2站后的乘客数加4也是5的整数倍,故(n+4)*4/5也是5的整数倍,即n+4是25的整数倍;类似的第5、6站相当于重复了3、4站,说明n+4是125的整数倍;第7、8站相当于重复了5、6站,说明n+4是625的整数倍;第9、10站相当于重复了7、8站,说明n+4是3125的整数倍。
经过10站后车上还有乘客,因此n+4最小是3125,所以火车上最初至少有3121人。
思考题:山洞里有一堆桃子,这是四只猴子的财产,它们想要平均分配。
第一只猴子来了,它左等右等别的猴子都不来,便把桃子分成四堆,每堆一样多,还剩下一个,它把剩下的一个顺手扔了,自己拿走了四堆中的一堆。
第二只猴子来了,它也没有等别的猴子,于是它把剩下的桃子等分成四堆,还剩下一个,它又扔掉一个,自己拿走一堆。
小学奥数猴子分桃练习及答案【三篇】
【导语】芬芳袭⼈花枝俏,喜⽓盈门捷报到。
⼼花怒放看通知,梦想实现今⽇事,喜笑颜开忆往昔,勤学苦读最美丽。
在学习中学会复习,在运⽤中培养能⼒,在总结中不断提⾼。
以下是©⽆忧考⽹为⼤家整理的《⼩学奥数猴⼦分桃练习及答案【三篇】》供您查阅。
【篇⼀】给猴⼦们分桃⼦,如果每个猴⼦分7个多出2个,如果每个猴⼦分8个,少5个,问:有多少个猴⼦?有多少个桃⼦?每个猴⼦分7个多出2个可以理解为:如果每个猴⼦分7个,少5个!7和8的最⼩公倍数是7×8=56所以桃⼦有:56-5=51个51÷7=7余2猴⼦有7只【篇⼆】1只猴⼦分5个桃,余7个桃;1只猴⼦分7个桃,少5个桃。
有多少只猴⼦?多少个桃?只猴⼦分5个桃,余7个桃;1只猴⼦分7个桃,少5个桃。
有多少只猴⼦?多少个桃?分析:“1只猴⼦分7个桃,少5个桃”,可以这样理解:如果加5只桃⼦,就能使每只猴⼦分到7个桃⼦。
这样从“1只猴⼦分5个桃”变成“1只猴⼦分到7个桃⼦”,只要增加7+5=12(个)桃⼦就可以了。
这样每只猴⼦能多分7-5=2个桃⼦。
猴⼦只数:12÷(7-5)=6(只)桃⼦数:5×6+7=37(个)【说个简单点的:去掉7个桃⼦,每只猴⼦分5个,增加7+5=12(个)桃⼦,每只猴⼦分到7个桃⼦。
或者:每只猴⼦要多分(7-5=)2个桃⼦,要增加12个桃。
】【篇三】5个猴⼦分桃⼦问题,跪求~~~~数学好的进,有5个猴⼦分⼀堆桃⼦,不可以平分,5个猴⼦都回去睡觉了,晚上,第⼀个猴⼦深夜偷偷起来,丢掉⼀个桃⼦,正好可以5个⼈分,于是,他拿掉⾃⼰的那份回去了。
第⼆个猴⼦也起来了,⼜丢了个桃⼦,⼜正好可以5个⼈分,于是,他也拿着⾃⼰的那份⾛了,后⾯的3,4,5猴⼦都是⽤同样的⽅法,也都正好。
问:⾄少有⼏个桃⼦。
设第5个猴⼦第⼀只猴⼦到时剩下1×5+1=6第⼆只猴⼦到时剩下6×5+1=31第三只猴⼦到时剩下31×5+1=156第四只猴⼦到时剩下156×5+1=781第五只⼦到时781 ×5+1=3906所以桃⼦总数是3906个。
小升初数学应用题大全:猴子分桃
2019年小升初数学应用题大全:猴子分桃有一群猴子,分一堆桃子,第一只猴子分了4个桃子和剩下桃子的1/10,第二只猴子分了8个桃子和这时剩下桃子的1/10,第三只猴子分了12个桃子和这时剩下桃子的1/10........依次类推.最后发现这堆桃子正好分完,且每只猴子分得的桃子同样多.那么这群猴子有多少只?方程解法:设总的桃子个数是10a+4个,那么第一只猴子分得a+4个桃子剩下9a,假设9a=10b+8个,那么第二只猴子分得b+8个桃子。
所以a+4=b+8,即b=a-4个。
那么就有9a=10(a-4)+8。
解得a=32。
所以桃子有32×10+4=324个。
每只猴子分得32+4=36个,所以猴子有324÷36=9只。
明月清风老师的解法。
第一只猴子分得的那1/10比第二只猴子的那1/10多8-4=4个第一只猴子分得的那1/10对应的单位1比第二只猴子分得的1/10对应的单位1多4÷1/10=40个。
那么第一只猴子分得的那1/10是40-8=32个。
所以桃子总数是32×10+4=324个。
要练说,得练听。
听是说的前提,听得准确,才有条件正确模仿,才能不断地掌握高一级水平的语言。
我在教学中,注意听说结合,训练幼儿听的能力,课堂上,我特别重视教师的语言,我对幼儿说话,注意声音清楚,高低起伏,抑扬有致,富有吸引力,这样能引起幼儿的注意。
当我发现有的幼儿不专心听别人发言时,就随时表扬那些静听的幼儿,或是让他重复别人说过的内容,抓住教育时机,要求他们专心听,用心记。
平时我还通过各种趣味活动,培养幼儿边听边记,边听边想,边听边说的能力,如听词对词,听词句说意思,听句子辩正误,听故事讲述故事,听谜语猜谜底,听智力故事,动脑筋,出主意,听儿歌上句,接儿歌下句等,这样幼儿学得生动活泼,轻松愉快,既训练了听的能力,强化了记忆,又发展了思维,为说打下了基础。
宋以后,京师所设小学馆和武学堂中的教师称谓皆称之为“教谕”。
智力测试题猴子分桃问题(3篇)
第1篇一、背景介绍猴子分桃问题,又称“猴子摘桃问题”,是中国古代著名的数学智力题之一。
这个问题最早出现在《孙子算经》中,后来在民间广为流传,成为了一个脍炙人口的数学游戏。
故事讲述了一只猴子在树上摘了许多桃子,每天都要分给其他猴子,最后只剩下几个桃子。
这个问题不仅考验了数学能力,还考验了逻辑思维和策略规划。
二、故事梗概从前,有一只猴子在树上摘了许多桃子。
它每天都要分给其他猴子一些桃子,自己留一些。
第一天,它分给了其他猴子桃子总数的1/2还多一个;第二天,它分给了其他猴子桃子总数的1/3还多一个;第三天,它分给了其他猴子桃子总数的1/4还多一个;第四天,它分给了其他猴子桃子总数的1/5还多一个;第五天,它分给了其他猴子桃子总数的1/6还多一个。
最后,猴子发现自己只剩下了几个桃子。
请问,猴子最初摘了多少个桃子?三、解题思路1. 假设猴子最初摘了x个桃子。
2. 根据题目描述,我们可以列出以下方程:第一天:x - (1/2)x - 1 = 0第二天:(1/2)x - (1/3)x - 1 = 0第三天:(1/3)x - (1/4)x - 1 = 0第四天:(1/4)x - (1/5)x - 1 = 0第五天:(1/5)x - (1/6)x - 1 = 03. 将方程简化,得到:第一天:x/2 - 1 = 0第二天:x/6 - 1 = 0第三天:x/12 - 1 = 0第四天:x/20 - 1 = 0第五天:x/30 - 1 = 04. 解方程,得到x的值。
四、解题步骤1. 第一天:x/2 - 1 = 0x = 22. 第二天:x/6 - 1 = 0x = 63. 第三天:x/12 - 1 = 0x = 124. 第四天:x/20 - 1 = 0x = 205. 第五天:x/30 - 1 = 0x = 30五、答案猴子最初摘了30个桃子。
六、拓展猴子分桃问题是一个经典的数学智力题,我们可以通过以下方式对其进行拓展:1. 变化桃子数量:假设猴子最初摘了n个桃子,n为任意正整数,求解n的值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
猴子分桃问题
★实验任务
动物园里的n只猴子编号为1,2,…,n,依次排成一队等待饲养员按规则分桃。
动物园的分桃规则是每只猴子可分得m个桃子,但必须排队领取。
饲养员循环地每次取出1 个,2 个,…,k个桃放入筐中,由排在队首的猴子领取。
取到筐中的桃子数为k 后,又重新从1开始。
当筐中桃子数加上队首猴子已取得的桃子数不超过m 时,队首的猴子可以全部取出筐中桃子。
取得桃子总数不足m个的猴子,继续到队尾排队等候。
当筐中桃子数加上队首猴子已取得的桃子数超过m时,队首的猴子只能取满m个,然后离开队列,筐中剩余的桃子由下一只猴子取用。
上述分桃过程一直进行到每只猴子都分到m 个桃子。
对于给定的n,k和m,模拟上述猴子分桃过程。
★数据输入
第1 行中有3 个正整数n,k 和m,分别表示有n 只猴子,每次最多取k个桃到筐中,每只猴子最终都分到m个桃子。
★数据输出
将分桃过程中每只猴子离开队列的次序依次输出
输入示例
输出示例
5 3 40
1 3 5
2 4
PS:有一种情况上面的问题没有描述,就是当筐中桃子数加上队首猴子已取得的桃子数正好等于m时,按照给的例子应该是管理员要往框中放k个桃子。
这是一个明显的队列问题,所以用queue写了一个,看对大家有帮助不,遗憾的是回收内存时老是出错,于是就没有回收,会造成内存泄露,不过对这个问题而言影响不大。
有什么办法可以解决可以告诉我,暂时不想研究了。
#include <iostream>
#include <queue>
using namespace std;
class monkey{
public:
int id;
int peach;
monkey(int imky)
{
id=imky;
peach=0;
}
monkey(const monkey &mkycopy) //复制构造函数
{
id=mkycopy.id;
peach=mkycopy.peach;
}
};
int main()
{
int n,m,k;
cout<<"monkey number:n=";
cin>>n;
cout<<"k=";
cin>>k;
cout<<"m=";
cin>>m;
int ik=1; //放入框中的桃子数,初始为1
bool mkypop=false; //有猴子出列且框中还有剩余桃子
int peachsy=0; //猴子出列时框中剩余的桃子数
queue<monkey>mky; //n个猴子初始化并且入队列
for(int i=1;i<=n;++i)
{
monkey *mkynew=new monkey(i);
mky.push(*mkynew);
}
while(ik)
{
monkey mkytemp=mky.front();
if(mkypop==false)
{
mkytemp.peach+=ik;
ik++;
if(ik==k+1)
ik=1;
}
else
mkytemp.peach+=peachsy;
if(mkytemp.peach<m) //桃子个数不足m个,排到队尾
{
mkypop=false;
mky.pop();
mky.push(mkytemp);
}
else //桃子大于等于m个,出列
{
cout<<mky.front().id;
peachsy=mkytemp.peach-m;
if(peachsy!=0)
mkypop=true;
mkytemp.peach=m;
mky.pop();
// delete &mkytemp; //删除申请的内存,会报错。
没找到解决办法}
if(mky.empty())
break;
}
cout<<endl;
return 0;
}。