五隻猴子分一堆桃。半夜,第一只猴子先起來,它把桃分成了相等的五堆,多出乙隻。於是,它吃掉了乙個,拿走了一堆;第二隻猴子起來一看,只有四堆桃。於是把四堆合在一起,分成相等的五堆,又多出乙個。於是,它也吃掉了乙個,拿走了一堆;......其他幾隻猴子也都是這樣分的。問:這堆桃至少有多少個?
先給這堆桃子加上4個,設此時共有x個桃子,最後剩下a個桃子.這樣:
第一只猴子分完後還剩:(1-1/5)x=(4/5)x;
第二隻猴子分完後還剩:(1-1/5)2x;
第三隻猴子分完後還剩:(1-1/5)3x;
第四只猴子分完後還剩:(1-1/5)4x;
第五只猴子分完後還剩:(1-1/5)5x=(1024/3125)x;
得:a=(1024/3125)x;
要使a為整數,x最小取3125.
減去加上的4個,所以,這堆桃子最少有3121個.
從上可擴充套件該問題,可擴充套件為n猴分n桃問題.
並可通過程式實現.以後會對該問題進行補充.:
#include
void main()
int monkey=1;//進行分桃的猴子數
int peaches,peach;//桃的總數和每次分桃的總數
peaches=1;
peach=peaches;
while(monkey<=5)
if(peach%5==1&&peach/5!=0)
peach=(peach/5)*4;
monkey++;
}//符合條件進行下一次的分桃
else
peaches++;
peach=peaches;
monkey=1;
printf("桃的最小總數為:%d\n",peaches);
列舉演算法3 五猴分桃
五猴分桃 五隻猴子一起摘了一堆桃子,因為太累了決定先睡一覺再分。一會其中乙個猴子先過來將桃子分成五分,剩了乙個桃子就給吃了,並拿走其中乙份。一會第2只猴子過來。又將剩下的桃子分成5份,發現多了乙個桃子給吃了,並拿走其中乙份,接著來的第3只 4只 5只猴子都是這樣做的,它們一共摘了多少桃子,第5只猴子...
51nod 猴猴吃蘋果 樹鏈剖分
這道題有dfs dfs的解法。我真是遇樹就剖絕了。線段樹記錄每乙個節點到根節點的距離dep i d ep i 每次選取dep dep最大點x x的來轉移。然後把roo troo t到xx的路徑上所有點p p的子樹的dep dep全部減一,因為這個子樹中每乙個點到根的距離都相當於只要到p p即可。拿樣...
Python 如何用python編寫無限猴子定理
python資料結構與演算法 一書中有無限猴子定理一題,問題如下 蒐集網上 除錯如下 import random num 1000 char list chr c ord a for c in range 26 返回c ord a 對應的ascii碼,a z 新增空格 該列表內的字元一共有27個 t...