📜  拼图 |剩下的数字

📅  最后修改于: 2022-05-13 01:57:26.187000             🧑  作者: Mango

拼图 |剩下的数字

萨希尔和阿姆利特是朋友。有一天,阿姆里特来到萨希尔的家,带他出去玩。但萨希尔否认说除非他找到解决问题的办法,否则他不会参加比赛。所以,Amrit 决定帮助他。问题是,给定前 50 个自然数,即 1 , 2 , . . . . . . . 49 、 50 写在黑板上。选择黑板上的两个数字,例如 a 和 b ,写出它们差值的绝对值 |a – b|在黑板上,然后擦除 a 和 b。应用上述操作49次。确定可以通过这种方式获得的剩余数字的所有可能值。

解:可以求出任何小于 50 的奇数正整数。

解释 :
1) 由于最初是 1 到 50 的数字在棋盘上,所以棋盘上的初始数字总和等于

1 + 2 + 3 + 4 + ——- +50 = 1275,这是奇数。

2) 在每个操作中选择板上的两个数字,即 a 和 b,其中 a<=b,写出它们差值的绝对值 |a – b|在黑板上,然后擦除 a 和 b。
因此,



S_{new} = S_{old} – a – b + |a – b|

3) 由于a<=b,因此,|a – b| = -(a – b) = b – a ,这意味着:

S_{new} = S_{old} – a – b + b – a = S_{old} – 2a ————(1)

4) 从结果 1 可以得出结论,每次将 a 和 b 替换为 |a – b| 的操作,其中 a <= b 不失一般性,将总和减少 2a

5) 从结果 1 可以看出,如果旧的和是奇数,那么新的和一定是奇数,因此从 1275 开始重复应用这样的操作不会产生偶数。

6) 还考虑到棋盘上的所有数字总是非负数。它们也小于或等于 50,因为 |a – b|对于非负的 a 和 b,总是小于或等于 a 和 b 的最大值。现在,从 1 到 49(包括 1 到 49)的任何奇数都可以通过应用拼图的运算 49 次来获得。

7) 令 k 为这样的数。这可以在第一次迭代中通过从 k + 1 中减去 1 得到: 1 – (k + 1) | = k。

8) 然后,将操作应用于剩余的连续整数对,

(2, 3), (4, 5), . . . , (k – 1, k), (k + 2, k + 3), . . . , (49, 50), 在擦除上述对的同时在板上得到 24 个。

9) 到目前为止,该操作已应用 25 次(步骤 7 中的 1 次和步骤 8 中的 24 次)。对 24 对 1 再应用 12 次运算会产生 12 个零,在应用 11 次运算后可以将其减少为单个零。

10)在第9步之后,该操作的总次数是48次。最后,对剩下的两个数字k和0应用该操作,得到k。

由于 k 是奇数,因此在应用给定操作 49 次后,可以得到任何小于 50 的奇数正整数。

参考资料 : 算法谜题 – Anany Levitin, Maria Levitin