最初の操作は次のようになりますが、期待と一致しません:
a=[0, 0, 0, 0, 0, 1, 1, 1, 1] | b=[0, 0, 0, 0, 0, 1, 1, 1, 1]
2 番目の方法は、リスト b を一時的に保存するために中間値を追加することです。結果は次のようになります:
a=[0, 0, 0, 0, 0, 0, 0, 0, 0] | b=[0, 0, 0, 0, 0, 1, 1, 1, 1]
実際のところ、「結果の違い」が何を意味するのかよくわかりません。あなたの出力は非常に正常ではありませんか? xor(a,c), 将列表a的每个元素, 和列表c的每个元素取异或结果, 导致列表变成结果a变成[0, 0, 0, 0, 0, 1, 1, 1, 1]リスト a を変更する際に、xor 関数はリスト a を返し、それを b に代入します。このように、b と a は同じリストではないでしょうか? 以下の「中間変数」は、b の以前の値を格納するだけです。最初の方法を使用して 2 番目の方法の効果を実現したい場合は、それを b に代入する代わりに直接置き換えることができます
xor(a,c)
a变成[0, 0, 0, 0, 0, 1, 1, 1, 1]
最初の方法は、b の値を変更し、次に a と b を交換することです。2 つ目の方法は、新しい値 Mid を定義し、次に b の値を変更してから、mid を a に代入することです。 この結果は正しいですが、何が問題ですか?
リーリー
この関数の本質は a を返すことですが、途中で変更がある可能性があります。その後
スワップが 2 つだけの場合:
実際のところ、「結果の違い」が何を意味するのかよくわかりません。あなたの出力は非常に正常ではありませんか?
リーリーxor(a,c)
, 将列表a的每个元素, 和列表c的每个元素取异或结果, 导致列表变成结果a变成[0, 0, 0, 0, 0, 1, 1, 1, 1]
リスト a を変更する際に、xor 関数はリスト a を返し、それを b に代入します。このように、b と a は同じリストではないでしょうか? 以下の「中間変数」は、b の以前の値を格納するだけです。最初の方法を使用して 2 番目の方法の効果を実現したい場合は、それを b に代入する代わりに直接置き換えることができます
最初の方法は、b の値を変更し、次に a と b を交換することです。2 つ目の方法は、新しい値 Mid を定義し、次に b の値を変更してから、mid を a に代入することです。
この結果は正しいですが、何が問題ですか?
リーリー
この関数の本質は a を返すことですが、途中で変更がある可能性があります。その後
リーリースワップが 2 つだけの場合:
リーリー