逆置換を求めるプログラムです。置換、
| 1 2 3 4 5 |
ρ=| 1 5 3 2 4 |
の下の部分を、与えると、逆置換
|1 2 3 4 5|
ρ^-1=|1 4 3 5 2|
の下の部分を返します。
例えば、|1 5 3 2 4 |は、一つの数字列15324で与えます。
返り値も、一つの数字列14352です。
なので、9桁までしか扱えません。
ターミナルから、
chmod +x rperm.py
で、実行権限を付けて、
./rperm.py 15324
として、実行して下さい。
rperm.py
#!/usr/bin/python3
import sys
istr=sys.argv[1]
l=len(istr)
i=1
rstr=""
while(i<=l):
k=1
while(k<=l):
if (int(istr[k-1])==i):
rstr=rstr+str(k)
break
k+=1
i+=1
print(rstr)
実行例
$ ./rperm.py 15324
14352
$ ./rperm.py 132
132
$