我有这个相对复杂的组合和排列代码,我必须在CLI中执行。代码将数字作为命令行参数,然后输出所有唯一组合的所有排列的列表。数组是由空格分隔的数字串。
如果N为6或更小,代码效果很好。甚至7.然而,当我通过n = 8时,代码只是冻结,它停止并且不会继续前进。
如何解决这个问题,以便N可以为8。
N永远不会大于8,但代码必须能够以8执行。
这是代码
for ($i=0; count($list) < $nop; $i++) {
shuffle($array);
$tmp = implode(' ', $array);
if (!isset($list[$tmp])) {
$list[$tmp] = 1;
}}
提前感谢所有建议。
答案 0 :(得分:2)
for ($i=0; count($list) < $nop; $i++) {
导致无限循环。在循环中,$list
或$nop
的大小不会改变,所以如果count($list) < $nop
为真,那么它将是一个无限循环。