是否可以将整数数组(正数和负数)和子集的总和转换为自然数(仅正数)数组和总和

Is it possible to transform a whole number array (positive and negative) and a sum of a subset to a natural number (positive only) array and sum

提问人:Talon Van Vuuren 提问时间:8/24/2023 更新时间:8/24/2023 访问量:32

问:

根据我的理解,如果我想创建一个整数(正和负)数组的自然数(仅正数)表示,这是非常简单的......取数组中最小元素的绝对值加 1,并将其与数组中的每个数字相加,这给了我一个从 1 开始的正数组,并保持元素之间的相关距离。

但是,如果我想在子集求和问题中使用这个新转换的数组,我的目标求和将不再准确。

我找到了一种解决方法,通过将数组上使用的因子乘以当前被视为总和子集的元素数量乘以该因子。

但是,这可能会导致误报,并导致其计算更加复杂。

有没有人在类似的问题上取得了成功,或者知道更可靠的方法。

数组 数学优化 数值 子集总和

评论

2赞 Simon Goater 8/24/2023
如果你加上 Z = 1 + abs(min(x_i)),给自己一个全正数组 y_i = x_i + Z,并且你有从 i 到 j 的子集的总和,S = sum_{k = i to j} y_k,那么 S' = sum_{k = i to j} x_k = S - Z(1+j-i),假设 j >= i。这回答了你的问题吗?
0赞 Mike 'Pomax' Kamermans 8/25/2023
@SimonGoater如果您的评论包含“这是否回答了您的问题”,则您写的是答案,而不是评论:请将其作为答案发布=)
0赞 Simon Goater 8/25/2023
@Mike'Pomax'Kamermans:OP自己的问题似乎在言语上说了同样的话,所以我不清楚他在问什么......
0赞 derpirscher 8/26/2023
您要解决的实际问题是什么?

答: 暂无答案