0

我有这个必须在 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;
    }}

感谢您提前提供的所有建议。

4

1 回答 1

2
for ($i=0; count($list) < $nop; $i++) {

导致无限循环。循环中没有任何地方的大小$list$nop改变,所以如果count($list) < $nop为真,它将是一个无限循环。

于 2012-10-15T06:23:40.853 回答