Artificial intelligent assistant

n進グレイコードからn進表記へ戻すには? # n n def to_gray(n, k, str) str.rjust(k + 1, '0').split('').each_cons(2).map{|d| (d[1].to_i - d[0].to_i) % n}.join end # n n def to_n_ary(n, k, str) ary0 = str.rjust(k, '0').split('') d = ary0[0].to_i n_ary = [d] (1..k - 1).each{|e| d = (d + ary0[e].to_i) % n n_ary << d } n_ary.join end n, k = 2, 3 ary = [] (0..n ** k - 1).each{|i| ary << to_n_ary(n, k, to_gray(n, k, i.to_s(n)))} p ary # n ① **n > 10 ** ②to_gray(n, k, str) to_n_ary(n, k, str) to_n_ary(n, k, str)

(: `n > 10` )

① `n > 10` `to_i`, `to_s` `n`

1. `.to_i` `.to_i(n)`
2. `.join` `.to_s(n)`



`to_gray` :


def to_gray(n, k, str)
str.rjust(k + 1, '0').split('').each_cons(2).map{|d|
((d[1].to_i(n) - d[0].to_i(n)) % n).to_s(n)
}.join
end


② :


def to_n_ary(n, k, str)
a = 0
str.rjust(k, '0').split('').map{|d| ((a += d.to_i(n)) % n).to_s(n)}.join
end


n 0 ( k ):


def to_n_ary(n, k, str)
a = 0
str.sub(/^0+(?!$)/, '').split('').map{|d| ((a += d.to_i(n)) % n).to_s(n)}.join
end

xcX3v84RxoQ-4GxG32940ukFUIEgYdPy 0d85c726898419783d384bd9b2997a9f