主题:一道题目
职高生
[专家分:0] 发布于 2006-06-03 12:41:00
我从报纸上看到的.
五个猴子分得一堆桃子,猴子彼此约定隔天早起后再分食.不过,就在半夜里,一只猴子偷偷起来,把桃子均分成五堆后,发现还多一个,他吃掉这个桃子,并拿走了其中一堆,第二个猴子醒来,又把桃子均分成五堆后,还是多了一个,它也吃掉了这个桃子,并拿走了其中的一堆.第三只,第四只,第五只猴子都依次如此分食桃子.那么桃子最少应该有几个呢?
回复列表 (共9个回复)
沙发
lovegxw [专家分:130] 发布于 2006-06-04 09:51:00
HOHO,这个题目我们以前考过,但忘记怎么做了。
板凳
小过 [专家分:0] 发布于 2006-06-06 20:18:00
我们书上也有这道题,但没答案
3 楼
老大徒伤悲 [专家分:29120] 发布于 2006-06-07 14:20:00
这个题目是及时一个递归的过程。
如果不用程序更简单:
最后一个猴子分桃是,最少应该有na+1个
倒数第二个猴子分桃时,最少有(na+1)*n/(n-1)+1
倒数第三个猴子分桃时,做少有((na+1)*n/(n-1)+1)*n/(n-1)+1
……………………
就这样,可以a=1, 如果中间不出现分数的话。要是计算中有分数,a可以增加
这样看来,编个程序,似乎就可以了?
楼主先试试看?
4 楼
suiyue [专家分:20] 发布于 2006-06-12 23:04:00
楼上说的na是什么哦?和n有什么区别啊?这道题学过循环结构那章应该可业做出来,不过我做不出来,我是这样思考的.最后一天的上一天的桃子数是最后一天的桃子数的5/4+1,也就是n/(n-1)+1也此类推,应该可以列出和1+2+3+....+100那样的方法的算式,我觉得要是知道初始或最后值就可列出
n=?
for i=1to5
n=5/4*n+1
next i
print n
end
但n至少是4.也就是最后哪天至少要剩4个.我愚昧的想法只是表达我的思路.希望高手指点下该怎么分析这个问题,指正我错误的思路,让小弟我受益无穷.
5 楼
suiyue [专家分:20] 发布于 2006-06-12 23:17:00
我验证了下就是最后哪天桃子还剩4个也不对,这样桃子就成了分数了.应该还有个循环嵌套的问题,还应有个循环来防止出现分数的情况.想不出来该怎么做,或许多学点算法多得到高手指点后能知道.
6 楼
moz [专家分:37620] 发布于 2006-06-13 12:05:00
可以先顺着题目来看一下,
它们是怎样分桃子的:
原桃子总数: m
第一个猴子分桃后剩下: m=(m-1)/5*4
依次类推.....
现在倒回来算,最后剩X个 X
第五个狮子分桃前剩下: X=X/4*5+1
第四个也同样 : X=X/4*5+1
三 X=X/4*5+1
二 X=X/4*5+1
一 X=X/4*5+1
由此可见,每一次的X都应该是一个能被4整除的偶数
而且除以4之后一定要是一个奇数,否则乘5加1后无法保证是一个偶数.
如果用数学思维推算下去,还有很多很多的步骤.
我们有了QB,就懒得去想了,用电脑的计算方法吧.
1.纯粹的倒数方法
defint a-z
for m=1 to 32767
n=m
for i=1 to 5
a=(n-1)\5
b=n mod 5
n=a*4
if a<0 or b<>1 or n<1 then exit for
next
if i>5 then exit for
next
print m
得到最小的结果是3121个
2.用逆向的方法来试试会加快一些速度
deflng a-z
for X=4 to 32767 step 4
M=X
for i=1 to 5
if M mod 4<>0 then exit for
M=M\4
M=M*5+1
next
if i>5 then exit for
next
print M
7 楼
JRX [专家分:180] 发布于 2006-06-19 18:38:00
我的方法是:
X=1
DO
S=5*X+1
FOR I=1 TO 4
S=S/4*5+1
NEXT I
IF S=INT(S) THEN ?"总数至少是:";S
LOOP UNTIL S=INT(S)
答案是3121
其实这题用数学方法解也很简单:
(总数+4)=5^5
总数=3125(5^5)-4=3121
8 楼
老大徒伤悲 [专家分:29120] 发布于 2006-06-19 19:50:00
[quote]我的方法是:
其实这题用数学方法解也很简单:
(总数+4)=5^5
总数=3125(5^5)-4=3121
[/quote]
说的好啊!
想得妙阿!学习!致敬!
9 楼
老大徒伤悲 [专家分:29120] 发布于 2006-06-19 19:54:00
我在3楼里面是合理局了一个通用公式,n是猴子数,a是最后一个猴子分配时每份桃子的数。
我来回复