0
以下は、置換を見つけるためのヒープアルゴリズムに基づくPHP関数です。この関数はJavaScriptでは問題なく動作しますが、PHPでは失敗します。どうして ?次のように関数のPHPでのヒープアルゴリズムの実装が間違った結果をもたらす
function generate($n,$A) {
if ($n === 1) {
var_dump($A);
return $A;
} else {
for ($i = 0; $i < $n - 1; $i++) {
generate($n - 1, $A);
if ($n % 2 === 0) {
$t = $A[$i];
$A[$i] = $A[$n - 1];
$A[$n - 1] = $t;
}else {
$t = $A[0];
$A[0] = $A[$n - 1];
$A[$n - 1] = $t;
}
}
generate($n - 1, $A);
}
}
generate(3,array('a','b','c'));
出力は次のようになります。
[ "a", "b", "c" ],
[ "b", "a", "c" ],
[ "c", "a", "b" ],
[ "a", "c", "b" ],
[ "b", "c", "a" ],
[ "c", "b", "a" ],
が、私は得る:
ここ[ "a", "b", "c" ],
[ "b", "a", "c" ],
[ "c", "b", "a" ],
[ "b", "c", "a" ],
[ "a", "b", "c" ],
[ "b", "a" ,"c" ]
予想される結果であり、どのような/あなたは実際に何を得ていますか? – Phil
**本当に**私の質問に答えることはありません。また、余分な情報を追加するためにコメントを使用しないでください。あなたの質問を編集してください。 – Phil