你知道过河的问题。以下是排序说明:
曾几何时,三个食人族正带领三个传教士穿过丛林。他们正在前往最近的宣教站的路上。过了一会儿,他们来到了一条宽阔的河流,那里满是致命的蛇和鱼。没有船就没有办法过河。幸运的是,经过短暂的搜索,他们找到了一艘带有两支桨的划艇。不幸的是,这艘船太小了,无法承载所有人。它一次几乎不能承载两个人。更糟糕的是,由于河流的宽度,没有办法把船拉回来,只能把它划回去。由于传教士无法信任食人族,他们不得不想出一个计划,让他们六个人安全过河。问题是,一旦某个地方的食人族比传教士多,这些食人族就会杀死并吃掉传教士。因此,我们的传教士程序员必须制定一个计划,确保在河的两岸永远不会有少数传教士。然而,可以信任食人族会以其他方式进行合作。具体来说,他们不会放弃任何潜在的食物,就像传教士不会放弃任何潜在的皈依者一样。
我的问题是这个问题的一部分。我正在尝试设计一个返回可能船载列表的函数(例如,如果boat_capacity 为 3,则[(3mis, 0can), (2mis, 1can), (1mis, 1can), ...])。我有num(传教士或食人者的人数)和船容量作为我的职能的输入。
你是如何设计你的函数和算法的?