我正在寻找一种算法来生成列表中重复 4 个元素(长度 2-1000)的所有排列。
Java实现 http://en.literateprograms.org/Permutations_with_repetition_%28Java%29
问题是上面链接中的算法分配了太多的内存用于计算。它创建一个具有所有可能组合长度的数组。例如,我的示例为 4^1000。所以我得到了堆空间异常。
谢谢
用于延迟评估生成一组选择 Y 的长度 X 的所有排列(具有重复)的通用算法:
for I = 0 to (Y^X - 1):
list_of_digits = calculate the digits of I in base Y
a_set_of_choices = possible_choices[D] for each digit D in list_of_digits
yield a_set_of_choices
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)