我收集了 43 到 50 个数字,范围从 0.133 到 0.005(但大部分都比较小)。如果可能的话,我想找到 L 和 R 之和非常接近的所有组合。*
The brute-force method takes 243 to 250 steps, which isn't feasible. What's a good method to use here?
编辑:组合将用于计算并被丢弃。 (如果您正在编写代码,您可以假设它们只是输出;我将根据需要进行修改。)组合的数量可能太大而无法保存在内存中。
*L = 0.5877866649021190081897311406,R = 0.5918521703507438353981412820。
基本思想是将其转换为整数背包问题(这很容易)。
选择一个小的实数e
并将原始问题中的数字舍入为可表示为k*e
带整数k
。越小e
,整数越大(效率权衡),但修改后的问题的解决方案将更接近原始问题的解决方案。一个e=d/(4*43)
其中 d 是目标间隔的宽度,应该足够小。
如果修改后的问题有一个精确的解,其总和为中间值(四舍五入为e
) 的目标区间,那么原始问题就在该区间内的某个位置。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)