読者です 読者をやめる 読者になる 読者になる

3次の置換(Ruby)

Ruby 数学

"012"→num1 の置換の規則で 文字列 num2 を写像。つまりは num2→num1 の写像ということ。

#permutation(置換)
perm3 = lambda do |num1, num2|
  h = {}; a = ""
  for i in 0..2
    h[i] = num1[i].to_i
  end
  for i in 0..2
    a[i] = h[num2[i].to_i].to_s
  end
  a
end

perm3["210", "012"]     #=>("012"→)"012"→"210"
#3次の置換は非可換
perm3["120", "210"]     #=>("012"→)"210"→"021"
perm3["210", "120"]     #=>("012"→)"120"→"102"