该款项子集的问题指出:
给定一组整数,是否有一个非空子集,其总和为零?
这个问题一般是NP完全的.我很好奇这个轻微变体的复杂性是否已知:
给定一组整数,是否有一个大小
k
的子集,其总和为零?
例如,如果k = 1
,您可以执行二进制搜索以查找答案O(log n)
.如果k = 2
,则可以将其归结为O(n log n)
(例如,请参阅查找一个数组中的一对元素,其总和等于给定数字).如果k = 3
,则可以这样做O(n^2)
(例如,参见查找数组中的三个元素,其总和最接近给定数字).
是否有一个已知的界限可以作为一个函数放在这个问题上
k
?
作为动机,我正在考虑这个问题你如何将一个数组分成两部分,使这两部分具有相同的平均值?并试图确定它是否实际上是NP完全的.答案在于是否存在如上所述的公式.
除非采用一般解决方案,否则我非常有兴趣知道最佳约束k=4
.
我整天都在看PHP数组排列/组合问题..但仍然无法弄明白:/
如果我有一个像这样的数组:
20 //key being 0
20 //key being 1
22 //key being 2
24 //key being 3
Run Code Online (Sandbox Code Playgroud)
我需要组合如:
20, 20, 22 //keys being 0 1 2
20, 20, 24 //keys being 0 1 3
20, 22, 24 //keys being 0 2 3
20, 22, 24 //keys being 1 2 3
Run Code Online (Sandbox Code Playgroud)
我目前的代码给了我:
20, 22, 24
Run Code Online (Sandbox Code Playgroud)
因为它不想重复20 ...但这就是我需要的!
这是我的代码.它直接来自Php递归以获得字符串的所有可能性
function getCombinations($base,$n){
$baselen = count($base);
if($baselen == 0){
return;
}
if($n == 1){
$return = array();
foreach($base as $b){
$return[] = …
Run Code Online (Sandbox Code Playgroud) 我有一个计数问题,这是这个问题的延续.我不是一个真正的数学家,所以我很难弄清楚subset sum problem
这被建议作为解决方案.
我有4个ArrayList
我持有数据:alId,alTransaction,alNumber,alPrice
输入| 交易| 号码| 价格
8 | 买| 95.00000000 | 305.00000000
8 | 买| 126.00000000 | 305.00000000
8 | 买| 93.00000000 | 306.00000000
8 | 转出| 221.00000000 | 305.00000000
8 | 转入| 221.00000000 | 305.00000000
8 | 卖| 93.00000000 | 360.00000000
8 | 卖| 95.00000000 | 360.00000000
8 | 卖| 126.00000000 | 360.00000000
8 | 买| 276.00000000 | 380.00000000
最后,我正在尝试为客户留下剩下的东西以及我放入3个数组列表的内容:
- alNewHowMuch(对应于alNumber),
- alNewPrice(对应于alPrice),
- alNewInID(对alID的corrseponds)
ArrayList alNewHowMuch = new ArrayList(); …
Run Code Online (Sandbox Code Playgroud) algorithm ×3
.net-3.5 ×1
c# ×1
combinations ×1
np ×1
permutation ×1
php ×1
recursion ×1
sql-server ×1