w星球的长老交给小明一个任务:
1, 2, 3… 16 这16个数字分为两组。
要求:
1、这两组数字的和相同,
2、并且,两组数字的平方和也相同,
3、并且,两组数字的立方和也相同。
请你利用计算机的强大搜索能力解决这个问题。
并提交1所在的那个分组的所有数字。
这些数字要从小到大排列,两个数字间用一个空格分开。
即类似:1 4 5 8 … 这样的答案。
笨笨有话说:
- 只要一个组的成员确定了,另一个组的成员也就确定了。枚举一个组的成员就可以了。凭直觉,两个组的成员数目不会差太多吧。
歪歪有话说:
- 既然求 1 所在的那个组,那只要枚举剩余的成员就可以了。貌似都是8个成员的可能性很大啊。
答案:1 4 6 7 10 11 13 16
题解:
暴力破解,因为这里不是很明确指出两组数字是否为对半分,有可能出现的结果组不是对半分:8 - 8,所以其中运用了二进制技巧对数字组进行全组合。
全组合
输入三个字符 a、b、c,则它们的组合有a b c ab ac bc abc。 这里介绍的是“基于位图”的思路:
假设原有元素 n 个,则最终组合结果是 2 n − 1 2^{n-1} 2