・数字抜き順列                     GAI 氏

 1、2、3 の数字のみを使用して小さい順に、

  1,2,3,11,12,13,21,22,23,31,32,33,111,112,113,・・・・

と並べていくとすると、数字 122333 は何番目に出現するか?また、122333何番目に出現す
る数字は?


 らすかるさんからのコメントです。(平成28年4月7日付け)

 4で初めて繰り上がる3進数と考えればよいので、122333 は、

   ((((1×3+2)×3+2)×3+3)×3+3)×3+3=498番目

 122333÷3=40777 余り 2
 40777÷3=13592 余り 1
 13592÷3=4530 余り 2
 4530÷3=1510 余り 0
 1510÷3=503 余り 1
 503÷3=167 余り 2
 167÷3=55 余り 2
 55÷3=18 余り 1
 18÷3=6 余り 0
 6÷3=2 余り 0
 2÷3=0 余り 2

なので、122333(10)=20012210212(3)

 これをもとに上位桁から値を借りて0をなくせばよいので、

  20012210212 → 13012203212 → 12312133212

 ∴122333番目は、12312133212


 GAI さんからのコメントです。(平成28年4月7日付け)

 問題を考えた動機として、今でこそ数字の"0"を使いこなしているが、もしも、この数字に
人類が気付かず、また、ある未開部族では、「1,2,3,たくさん」と数えるらしいので、1、2、3の
みの数字を使うだけで、どの様に数えていくものだろうか?とふと思ったからでした。

 並べて行ってみて今でこそ0が出現しない4進法か、でも構造的には3進法が近いような・・・
何ともどちらともつかない変な気分になっていました。計算機に頼らず何とか答えを導きた
かったので、並ぶ数字の "1"->"0","2"->"1","3"->"2" に読み替えて、先頭に1を補充す
ることで、何とか3進法が飛び飛びながらも並んでいると、ある意味強引に近代的な数のシ
ステムに移し換えて処理していきました。

 逆の順番から数字を見つけ出すのも、基本的には3進法(ただし変則)に乗っ取って進め
ました。ところが、らすかるさんのやり方をみると、見たこともない解釈で不思議な計算と及
びもしない発想により、私が3時間位かけてやっと到着した2つの数値にピタリ一致していま
した。
(練習にこの値は正しいのかをプログラムを組んで確認するのにまた数時間使いました。思
ったようになかなか動いてくれなかった。プログラムももっと勉強しなければ・・・)

 改めて数字"0"と、いかに10進法に当たり前のように接しているこのシステムを離れたとき
うまく対応できない自分がいることに気づかされました。らるかるさんの型にとらわれない変
幻自在の発想にいつも感心させられます。


 DD++さんからのコメントです。(平成28年4月7日付け)

 私はこう解きました。GAIさんのと同じですかね?

1桁の数は3個、2桁の数は9個、3桁の数は27個、4桁の数は81個、5桁の数は243個
合計 3(3^5-1)/(3-1) = 363 個

 特殊三進法と普通の三進法でそれぞれ6桁の数を小さい順に並べて行くと、122333(特3)
は、111222(3) に対応する。

 つまり、これは6桁の数のうち11222(3)+1(3) = 12000(3) = 135(10) 番目なので、全体で、
363+135 = 498 番目

 3(3^10-1)/(3-1) < 122333 < 3(3^11-1)/(3-1) より、122333番目の数は11桁

 10桁以下の数は88572個なので、11桁の数のうち33761番目を答えればよい。

 同じように特殊三進法と普通の三進法でそれぞれ11桁の数を小さい順に並べていくと、普
通の三進法で小さい方から 33761(10) = 1201022102(3) 番目は 11201022101(3)

 これに対応する特殊三進法の数は、12312133212(特3)



                         投稿一覧に戻る