猴子分食桃子问题

问题描述:
五只猴子采得一堆桃子,猴子彼此约定隔天早起后再分食。不过,就在半夜里,一只猴子偷偷起来,把桃子均分成五堆后,发现还多一个,它吃掉这多余的一个桃子,并拿走了其中一堆。第二只猴子醒来,又把桃子均分成五堆后,还是多了一个,它也吃掉这个多余的桃子,并拿走了其中一堆。第三只,第四只,第五只猴子都依次如此分食桃子。那么桃子数最少应该有几个呢?

 

 

### 回答1: 假设猴子第一天摘了n个桃子,则根据题意可得: 第一天吃了x%的桃子,剩下(1-x%)n个桃子加1个,即(1-x%)n+1个桃子。 第二天吃了x%的桃子,剩下(1-x%)((1-x%)n+1)+1个桃子。 第三天吃了x%的桃子,剩下(1-x%)((1-x%)((1-x%)n+1)+1)+1个桃子,等于1个桃子。 即:(1-x%)((1-x%)((1-x%)n+1)+1)+1=1 化简可得:(1-x%)((1-x%)((1-x%)n+1)+1)= 因为(1-x%)>,所以(1-x%)((1-x%)n+1)+1= 化简可得:(1-x%)n+1=-1/(1-x%) 因为n是整数,所以(1-x%)n+1>,所以-1/(1-x%)<,即1-x%>,即x%<1。 综上所述,猴子第一天摘的桃子数n应该满足以下条件: 1. n是整数。 2. x%<1。 3. (1-x%)n+1是负数。 根据第三个条件可得:n>log(1/(1-x%))/log(1-x%)。 因为n是整数,所以n=log(1/(1-x%))/log(1-x%)+1。 因此,猴子第一天摘的桃子数为:n=log(1/(1-x%))/log(1-x%)+1。 ### 回答2: 假设猴子第一天摘了N个桃子,根据题意可列出如下程组: 第一天:N - x%N - 1 = (N - 1) * (1 - x%) 第二天:(N - x%N - 1) - x%(N - x%N - 1) - 1 = (N - 1) * (1 - x%) 第三天:[(N - x%N - 1) - x%(N - x%N - 1) - 1] * (1 - x%) - 1 = (N - 1) * (1 - x%) 化简得: 第一天:N = (1 - x%) * [(N - x%N - 1) / (1 - x%)] + 1 第二天:N = (1 - x%) * {[(N - x%N - 1) - x%[(N - x%N - 1) / (1 - x%)]] / (1 - x%)} + 1 第三天:1 = (1 - x%) * {[(N - x%N - 1) - x%[(N - x%N - 1) / (1 - x%)]] - x%[(1 - x%) * {[(N - x%N - 1) - x%[(N - x%N - 1) / (1 - x%)]] / (1 - x%)}]} / (1 - x%) + 1 根据上述程组,可以通过编写程序进行求解。以下是Python代码实现: x = float(input("请输入猴子每天吃剩下桃子的百比x:")) N = 1 while True: temp = N N = (1 - x) * ((N - x * N - 1) / (1 - x)) + 1 if int(N) == temp: break print("猴子第一天摘了%d个桃子。" % int(N)) ### 回答3: 假设第一天摘得桃子为n个,则根据题意可得: 第一天剩下的桃子为(n-1)*(1-x%) 第二天剩下的桃子为[(n-1)*(1-x%)-1]*(1-x%)+1,化简得到(n-1)*(1-x%)^2-1*(1-x%)+1 第三天剩下的桃子为[(n-1)*(1-x%)^2-1*(1-x%)+1-1]*(1-x%)+1,化简得到(n-1)*(1-x%)^3-1*(1-x%)^2+1*(1-x%)+1 由于第三天只剩下一个桃子,根据上式我们可以得到: (n-1)*(1-x%)^3-1*(1-x%)+1*(1-x%)+1=1 化简可得: (n-1)*(1-x%)^3=1 则: n-1=(1-x%)^(3*-1) n=1+(1-x%)^(3*-1) 因此,猴子第一天摘了n个桃子,即可得到程序:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值