Я только что обнаружил алгоритм поиска набора мощности. Я гуглил после решений, но не нашел ни одного, который сработал бы хорошо, поэтому сам придумал. Но мне интересно, что это за алгоритм, потому что я не могу найти его в сети или в каких-либо книгах. Я имею в виду, у него есть имя? По сравнению с алгоритмами, которые я нашел на некоторых сайтах для расчета мощности, я думаю, что мой намного лучше, и удивляюсь, почему никто не использует его?
Это алгоритм:
R <- []
L <- [ e1, e2 ... en ]
c <- 0
function: powerSet(L, c)
R <- R union L
for e in L starting at c
powerSet(L\{e}, c)
end
return R
end
А вот это реализовано на Java:
public static void powerSet(List<String> list, int count)
{
result.add(list);
for(int i = count; i < list.size(); i++)
{
List<String> temp = new ArrayList<String>(list);
temp.remove(i);
powerSet(temp, i);
}
}