結論は非常に簡単で単純なものだが,酒を飲んで帰る途中の電車でせっかく考えたので,一応logる.
とにかく,表記が"20歳"となればいい.
以前,24歳になる後輩が,「16進数表記ならまだ18歳だ」と主張していた.正確には0x18歳とかだが,まぁとりあえず18歳だ.ならば,(自分の10進数的年齢に対応した)"n進数で20歳"という状態になるnを常に把握しておけば,"永遠の20歳"が実現できるだろう.
n進数について思い出す.
2進数なら,表記段階で2が出たら桁を上げる.なので,0(0),1(1),10(2),11(3),100(4),...となる.
同様に3進数なら,0(0),1(1),2(2),10(3),11(4),12(5),20(6),...となる.
ちなみに先ほど出てきた16進数なら,0(0),1(1),...,9(9),a(10),b(11),...,f(15),10(16),11(17),...となる.
このようなk桁のn進数を10進数に「戻す」方法は既に周知のとおりで,
k桁目の数×nk-1+k-1桁目の数×nk-2+...+1桁目の数×n0で求められる.
今回は"n進数で20歳"となるnと10進数的年齢(あくまで実年齢とは云わない)の関係を求めることが目的なので,2×n1+0×n0=10進数的年齢を満たすnが求められれば・・・というところでもう明らかですが,そうです,10進数的年齢を2で割った進数で"永遠の20歳"が手に入ります.まぁ小数点の進数とかどうなのか全く考えてないので,最悪1年おきに20歳とかかも.ちなみに20歳になってないちびっ子はどうなの?というところも考えると,先ほどの「10進数的年齢を2で割った進数」は10進数的5歳(=2.5進数)までは同じルールが適応できるはずですが,10進数的4歳だと2進数なので,20って表記できないので,多分10進数的4歳以下は全部無理.
とまぁ,酔っ払いが電車の中で紙とペンで5分くらいで考えた戯言ですが,blogに書くと1時間くらいかかる不思議.
0 件のコメント:
コメントを投稿