有五只猴子摘了一些桃子,打算隔天早上起来分了吃。晚上的时候,第一只猴子偷偷起来把桃子分成五堆,还多了一个,就把多了的那个吃掉,并拿走了一堆。第二只猴子也偷偷起来将桃子分成了五堆,还是又多了一个,同样吃掉了这一颗桃子,并拿走了其中一堆。第三只、第四只、第五只猴子都做了同样的事情。请问这堆桃子最少有多少个?
解:设桃子一共有m个,F[i]表示第i个猴子偷完后剩余的桃子的个数
F[0] = m
F[1] = ((F[0]-1)/5)*4
F[2] = ((F[1]-1)/5)*4
…
F[n] = ((F[n-1]-1)/5)*4
根据F[n]表达式用待定系数法求a
F[n]+a = ((F[n-1]+a)/5)*4
得
a = 4
固有
F[n]+4 = ((F[n-1]+4)/5)*4
即
(F[n]+4)/(F[n-1]+4) = 4/5
所以数列F[n]+4是一个以4/5为公比的等比数列,得
F[n]+4 = (F[0]+4)*(4/5)n
即
F[n]+4 = (m+4) *(4/5)n
因为F[n]+4为正整数,所以要求
m+4 = k*5 n (k为正整数)
因为求至少有多少个桃子,所以取k=1即可
m = 5 n -4 =5 5 -4 = 3121
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
题目延伸:有k个猴子偷桃,每次分成k分且多出a个,吃掉这多出的a个并拿走其中一份。每个猴子都做了同样的事情,问桃子最少有多少个?
思路和前面一样,主要是得出等比数列,对于该延伸题目,设桃子一共有m个,F[i]表示第i个猴子偷完后剩余的桃子的个数,则
F[0] = n
F[1] = ((F[0]-a)/k)*(k-1)
…
F[n] = ((F[n-1]-a)/k)*(k-1)
同样,利用待定系数法,我们可以得到
F[n]+a(k-1)=((F[n-1]+a(k-1))/k)*(k-1)
即
(F[n]+a(k-1))/(F[n-1]+a(k-1)) = (k-1)/ k
所以
F[n]+a(k-1) = (F[0]+a(k-1))*( (k-1)/ k) n =(m+a(k-1))* ((k-1)/ k) n
取m+a(k-1) = k n
得
m = k n -a(k-1)
对于5猴偷桃来说,k=5,a=1故,m=5 n -4与前面结果吻合