【问题标题】:Trying all permutations尝试所有排列
【发布时间】:2010-05-12 15:49:24
【问题描述】:

对于我的程序,我试图帮助用户,并减少他或她的工作量。

有四个输入数字。它们也可以应用的数量不定。

例如,它们的四个输入数字可以是{4,7,3,2},它们可以应用到的数字是{4,9,23}

结果应该是:将 4(输入)应用于 4,使集合看起来像:{0,7,3,2},然后将 7,2(输入)应用于 9,使集合看起来像: {0,0,3,0} 和 {0,0,23} 并且因为 3 或包括 3 在内的任何其他排列与 23 不匹配,所以 3 仍然存在。

我该怎么做?

【问题讨论】:

  • 它们是从左到右处理的,还是可以将 4,3,2 应用于 9 使集合看起来像 {0,7,0,0} {4,0,23}?跨度>
  • 没关系。任何一个都是正确的。

标签: c# .net-3.5 permutation


【解决方案1】:

您是说要从输入集中找到总和为另一个集中的值的项目吗? 如果是这样,那么我相信这是Subset Sum Problem 的一个实例,它是Knapsack Problem 的一个特例。

子集和是 NP 完全的。如果集合很大,您能做的最好的就是近似解。

【讨论】:

  • 我担心它可能是 np-complete。由于它是一个小系列,我想我只是蛮力它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-08-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多