==================================================== ===============================
当我意识到之前有人问过这个问题时,我正在 StackOverflow 中写我最初的问题。
原来我有所谓的子集和问题,所以我去了维基百科并找到了这部分。
The algorithm for the approximate subset sum problem is as follows:
initialize a list S to contain one element 0.
for each i from 1 to N do
let T be a list consisting of xi + y, for all y in S
let U be the union of T and S
sort U
make S empty
let y be the smallest element of U
add y to S
for each element z of U in increasing order do
//trim the list by eliminating numbers close to one another
//and throw out elements greater than s
if y + cs/N < z ≤ s, set y = z and add z to S
if S contains a number between (1 − c)s and s, output yes, otherwise no
但是我在理解维基百科中编写的伪代码时遇到了问题。
例如,我认为目标是找到可以匹配 S 的最接近的一组数字。
但这里 S 是一个列表。这个元素为 0 的 S 列表是什么?
到底是 if y + cs/N < z ≤ s
什么?我什至如何用代码写出来?
我希望有人能帮我把它翻译成 php 代码。
至少我对此比较熟悉。它不必是完整的翻译。
只要答案让我足够理解这个近似算法,让我自己用 php 代码编写它,就可以了。