五猴分桃python 五猴分桃問題

2021-10-11 17:01:31 字數 873 閱讀 5864

五隻猴子分一堆桃。半夜,第一只猴子先起來,它把桃分成了相等的五堆,多出乙隻。於是,它吃掉了乙個,拿走了一堆;第二隻猴子起來一看,只有四堆桃。於是把四堆合在一起,分成相等的五堆,又多出乙個。於是,它也吃掉了乙個,拿走了一堆;......其他幾隻猴子也都是這樣分的。問:這堆桃至少有多少個?

先給這堆桃子加上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...