Cross-posted in MathExchange to elicit more responses.перевод приблизительного алгоритма для суммы подмножества в код php
==================================================================================================================================== ============================================
Я писал свой оригинальный вопрос в StackOverflow, когда понял было задано before.
Оказывается, у меня есть так называемая проблема с суммой подмножества, поэтому я пошел в wikipedia и нашел эту часть.
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 список. Что представляет собой этот список S с элементом 0?
И что же такое if y + cs/N < z ≤ s
? Как я могу записать это в коде?
Я надеялся, что кто-то может помочь мне перевести это в PHP-код.
По крайней мере, я более знаком с этим. Это не обязательно полный перевод.
До тех пор, пока ответы заставляют меня понять этот приблизительный алгоритм, достаточный для того, чтобы я сам его написал в php-коде, что и будет.