2009个球,两人轮流取球,每人每次至少取2个最多5个,取到最后一个输,如果甲先取,谁将获胜?
2009个球,两人轮流取球,每人每次至少取2个最多5个,取到最后一个赢,如果甲先取,甲应当怎样取?
思路:
谁先取,随占据优势。以甲先取为例,除却第一次,中间步骤的执行过程是 乙->甲,重复执行;甲在中间过程的执行策略就是,无论乙取几个,甲将总数凑够7个(2+5)。在保证执行中间步骤策略的基础上,最后是乙取到最后的球,还是甲取到最后的球,完全取决于,甲第一取球时的策略(2009%7==0)。
如果让乙取到最后的球,那么留给乙的球数数量必须为2,则甲第一次要取5个球;如果甲自己要取到最后一个球,那么乙最后一次取球时,留给他的数量必须是7。在这种条件下,甲第一次只能不取(至少取2个最多5个),否则是没有办法达到的,因此甲没法保证取到最后一个球。
面试时,要展现的思考过程:反着推,如果让乙取到最后的球,那么留给乙的球数量必须为2,每人每次至少取2个最多5个,这个条件可以令甲保证在每次甲和乙取的总数为7,这样就可以反推,甲第一次要取的球数。