python实现猴子分桃问题
2017-05-26 08:11
591 查看
问题描述:
五只猴子分桃。半夜,第一只猴子先起来,它把桃分成了相等的五堆,多出一只。于是,它吃掉了一个,拿走了一堆; 第二只猴子起来一看,只有四堆桃。于是把四堆合在一起,分成相等的五堆,又多出一个。于是,它也吃掉了一个,拿走了一堆;......其他几只猴子也都是 这样分的。问:这堆桃至少有多少个?##本算法从最后一个猴子进行逆向推倒 def peach(monkey=5): pea = 4 ##最后一个猴子分完剩余的桃子 while 1: num = pea for i in range(monkey): num = num + num / 4 + 1 if num % 1 != 0: ##如果分出了小数则结束内层循环 pea += 4 ##最后的桃子一定是4的整数倍 break if num % 1 == 0: ##如果是整分 则结束 break return pea, num if __name__ == '__main__': pea, num = peach() print(pea, num)
相关文章推荐
- 用python实现多只猴子分桃问题
- C语言实现的猴子分桃问题算法解决方案
- 猴子分桃问题
- 猴子吃桃问题(C语言实现)
- Python实现八皇后问题
- 猴子选大王问题的实现
- 基数排序(Python实现出现的奇怪问题???)
- 猴子分桃问题,有意思......
- 汉诺塔问题的python实现
- 多机调度问题——python实现
- 5个猴子摘桃子的问题程序实现
- 用Python实现约瑟夫问题
- 一个无聊男人的疯狂《数据结构与算法分析-C++描述》学习笔记 用C++/lua/python/bash的四重实现(3) 最大子序列和问题
- 猴子报数问题(java实现)
- 单链表实现猴子选大王(约瑟夫环问题)
- 连续子向量的最大和问题(Python实现)
- 狄拉克的猴子分桃问题
- 猴子报数问题(java实现)
- 8皇后问题Python与C++实现
- 猴子分桃问题