- 2進法について(こちらから)
- とてふを使って書くには
[tex:X=\sum_{i=0}^{k-1} 2^i \times a_i]
- とはてなブログでは書く
- N進法でk桁の数値は10進法ではいくつになるかは
n<-4
k<-5
NISHIN<-sample(0:(n-1),k,replace=TRUE)
NISHIN
sum(n^{0:(k-1)}*NISHIN)
> n<-4
> k<-5
> NISHIN<-sample(0:(n-1),k,replace=TRUE)
> NISHIN
[1] 1 2 2 3 1
> sum(n^{0:(k-1)}*NISHIN)
[1] 489
n<-4
k<-5
NISHIN<-sample(0:(n-1),k,replace=TRUE)
NISHIN
sum(n^{0:(k-1)}*NISHIN)
- さて、N進法を10進法にする方法が示された
- では10進法の数値をN進法に直すにはどうすればよいだろうか
- さらに、一般的に、N進法の数値をM進法に直すにはどうすればよいだろうか
- どうすればよいか、というときに、言葉でどうやるかを決めて(アルゴリズム)、それを実装する(Rのコードにする)
- これを考えるときに、次のようなことが気になる
- ある自然数(1から始めて何番目に大きいか、という数。何進法で表すかによらない数)は、N進法ではNによらず一意に表せる。と書くとき、Nによらず、は一意
- 進法と進法とである自然数を表すとき
- ある自然数が一意に表せるということからは、素因数分解が連想される
- の関係が積で対応するときには簡単であるということからも、素因数分解が連想される
- さて…
- 単純に考えるために、ととが互いに素であるとする
- [tex:N
- このとき、ととの最小公倍数はである
- は、進法では、2桁で、小さい位からで表される
- は、進法では、桁で、小さい位からと表される
- は、進法では、2桁で、小さい位からで表される
- このように書いてくると、進法と進法とが「相性が良い」のは、
- は、進法では、桁で、小さい位からと表されるの部分で、0が多いから
- 図形的に考える
- 今、0から始まる数直線を考える
- 単位長さごとに、印がついている
- これを折りたたむのがn進法
- 2進法では、k桁で考えれば、k次元の単位超立方体の頂点を(0,0,...0),(1,0,...,0),(0,1,0,...,0),(1,1,0,...,0),(0,0,1,0,...,0)というように規則的に埋めていく処理
- 3進法では、この超立方体の辺の長さが1伸びて、2になっている
- n進法では、超立方体の辺の長さが(n-1)になっている
- 進法は、2進法なら立体になっているところを、平面につぶす作業
- の関係がのときには、単純に押しつぶすことができないことが、両者の表記の移行が面倒な理由
- そこに最小公倍数が出てくるのは、最小公倍数の頂点は、ルールが見つけやすい「基準点」の役割を果たすから