タイトル、分かりにくいでしょうか。例えば変数をx、yとしてx=a、y=bと代入されているとします。他の変数は使わず、xにbが、yにaが入っている状態にしたいのです。x=bとやればいいでしょ、……というのはナシ。使えるのはx、yと通常の四則としておきます。さあ、少し考えてみてください。
PythonでもCでもBasicでも同様です。次の手順でどうでしょうか。
x=a
y=b
x=x+y
y=yーx
x=x+y
y=ーy
変数の内容を追いかけると、
x y
-----------------------------------
x=a a
y=b a b
x=x+y a+b b
y=yーx a+b -a
x=x+y b -a
y=ーy b a
これは、行列で行の定数倍と行同士の和だけを用いて行の入れ換えを実行する手順でもあります。何のために……と思うかも知れませんが……。いわゆる行の基本変形には「行の交換」が含まれています。
①行の定数倍
②行の入れ換え
③行を他の行に加える
(③として「行の定数倍を他の行に加える」を採用することもある)
といった具合です。しかし、今回の記事によると②は不要なのです。もちろん、効率は悪くなったりしますが、基本変形としては①と③だけで十分、と言えるわけです。