David Gries的咖啡罐问题

2013年10月22日

David Gries在他1981年的书中描述了今天的练习程序设计科学; 我是从乔恩·本特利2000年的书中学到的编程珠玑,第二版。

最初,你会得到一个咖啡罐,里面有一些黑豆、一些白豆和一大堆“多余”的黑豆。然后重复以下过程,直到罐子里只剩下一个bean。

从罐中随机选择两个豆子。如果它们是相同的颜色,就把它们都扔掉,再多插一颗黑豆。如果它们是不同的颜色,把白豆放回罐子里,把黑豆扔掉。

证明进程终止。你能说最后剩下的豆子的颜色是最初在罐子里的黑豆和白豆数量的函数吗?

你的任务是回答上述两个问题,然后编写一个模拟咖啡罐问题的程序。完成后,欢迎您阅读运行建议的解决方案,或在下面的评论中发布自己的解决方案或讨论练习。

页:1 2