1
Quaintjade 2014-11-08 09:26:03 +08:00 via Android
这应该算是数学问题了,不知道有什么好的算法。
想想解24点比较容易想到的算法基本上也就是穷举,远不如查表快。 |
2
hqfzone OP @Quaintjade 如果数据较多,三四百,性能上可能么?穷举怎么做,这个循环层数不定啊
|
3
Quaintjade 2014-11-08 10:36:30 +08:00 via Android
@hqfzone 我只是在说这个问题感觉很难,不知有什么算法没。。。
|
4
seki 2014-11-08 11:51:04 +08:00
姑且认为之中没有重复数,而且是正数
从 n 个数的数列 S1 创建 n 个数的数列 S2,使得 S2=-S1 合并 S1 和 S2 得到 S 剩下的就是 S 之中的加法穷举问题了,循环层数最多就是 2n-1 层了吧…… 性能当然不好,但是既然你都准备用 vba 解决问题了,那也就是让 excel 假死一会的事…… |
5
staticor 2014-11-08 12:34:08 +08:00 via iPhone
如果说b值一定可以由a列求出 说明存在。 可以把a列n个值和其相反数n个值 (2n) 作数组
依次是以1 0作为因子乘 求出累计和即可 |