4

36進法は"いい"記数法説

1296
0

はじめに

 この記事では「36進法って実は優秀なんじゃないか?」という説について私なりに考察してみた話を紹介します。
 私たちが普段使っている10進法には次のような性質があります。

  • 自然数nの下k桁が2kまたは5kの倍数であるとき、n2kまたは5kの倍数である。
  • 自然数nの各桁の合計が3または9の倍数であるとき、n3または9の倍数である。

たとえば

  • 124の下二桁244=22の倍数なので1244の倍数
  • 1125の下三桁125125=53の倍数なので1125125の倍数
  • 123456789の各桁の合計459の倍数なので1234567899の倍数

といった感じです。またこれらの逆も言えます。つまり

  • 1124の下三桁1248=23の倍数ではないので11248の倍数ではない。
  • 11125の下四桁1125625=54の倍数ではないので11125625の倍数ではない。
  • 12345678910の各桁の合計553の倍数ではないので123456789103の倍数ではない。

自然数の倍数判定においてこれらの判定法はかなり便利ですが、71113などでも同じことを考えようとすると次のように少し煩雑になってしまいます。

  • 自然数n=j=06knj10j(0nj9)について
    i=0k(5n6i+5+4n6i+4+6n6i+3+2n6i+2+3n6i+1+n6i)または
    i=0k(2n6i+53n6i+4n6i+3+2n6i+2+3n6i+1+n6i)
    7の倍数であるとき、n7の倍数である。
  • 自然数n=j=0knj10j(0nj9)について
    j=0k(1)jnj11の倍数であるとき、n11の倍数である。
  • 自然数n=j=06knj10j(0nj9)について
    i=0k(4n6i+5+3n6i+4+12n6i+3+9n6i+2+10n6i+1+n6i)または
    i=0k(4n6i+5+3n6i+4n6i+34n6i+23n6i+1+n6i)
    13の倍数であるとき、n13の倍数である。

つまるところ10進法では2k,5k3,9(,11)以外の倍数判定をするなら上のような方法をわざわざ覚えるより素直に割り算した方がよさそうということになります。でもどうせならもっと多くの倍数判定を簡単にできる方が便利ですよね。ということでそういう観点から何進法ならもっと使いやすいのか考えてみましょう。

倍数判定法

 まず上で紹介した倍数判定法がなぜ成り立つのかを確認しておきましょう。
 といっても仕組みは単純でN進法で表された自然数
n=j=0knjNj
dの倍数であるか判別したいとき、Njdで割った余りをrjとおいてn=j=0knjrj
dの倍数であるかどうかを判別すればいいという話です。rjの取り方から
nn=j=0knj(Njrj)
dの倍数になるので、もしndの倍数であるとするとn=n(nn)dの倍数になりますし、逆にndの倍数であるとするとn=(nn)+ndの倍数になるというわけです。
 また、ここで重要なのはNjrjdの倍数であることにあるので
rj={rj(rjd2)rjd(rj>d2)
とおいてもNjrjdの倍数になることから、nの代わりに
n=j=0knjrj
dで割り切れるかを考えても同じことが言えます。nにおいては各桁の値njに掛ける重りrjの大きさ(絶対値)がd2以下になるので時によってはnよりも計算が楽になります(符号を間違える可能性が高いことに目を瞑ればの話ですが...)。ちなみに
n=(nn)+n=(nn)+n
からわかるようにn,n,ndで割った余りはそれぞれ等しくなります。

"いい"進法

 さて、冒頭で挙げたN=10進法におけるd=2k,5k,3,9,11の倍数判定法のように、rj=0,±1となってくれると計算する方としては助かるのでした。つまりrj=0,±1となるようなdの数が多いようなN進法はより"いい"記数法だと言っていいと思います。
 rjの取り方からNjrjdの倍数、特にdNr1の倍数なのでrj=0,±1となるdが多いということはN1,N,N+1の約数の総数が多いということになります(逆にdN1,N,N+1の約数であるときrj=0,±1となることは簡単にわかります)。というわけでとりあえずN=2から順にN1,N,N+1の因数を(素数のべきとして)列挙してみてどのようなNのときにその総数が多くなるのか見てみましょう。

NN-1の因数Nの因数N+1の因数d
21232k,3
3232222,3k
432252k,3,5
52252,322,3,5k
652,372k,3k,5,7
72,372323,3,7k
8723322k,32,7
923322,523,3k,5
10322,5112k,32,5k,11
112,51122,322,3,5,11k
121122,3132k,3k,11,13
1322,3132,722,3,7,13k
14132,73,52k,3,5,7k,13
152,73,52424,3k,5k,7
163,524172k,3,5,17
1724172,3224,32,17k
18172,32192k,3k,17,19
192,321922,522,32,5,19k
201922,53,72k,3,5k,7,19
2122,53,72,1122,3k,5,7k,11
223,72,11232k,3,7,11k,23
232,112323,323,3,11,23k
242323,3522k,3k,52,23
2523,3522,1323,3,5k,13
26522,13322k,32,52,13
272,133222,722,3k,7,13
283222,7293k,32,7k,29
2922,7292,3,522,3,7,29k
30292,3,5312k,3k,5k,29,31
312,3,5312525,3,5,31k
3231253,112k,3,11,31
33253,112,1725,3k,11k,17
343,112,175,72k,3,5,7,11,17k
352,175,722,3222,32,5k,7k,17
365,722,32372k,3k,5,7,37

 こうしてみるとN=36までの中でN1,N,N+1の素因数の総数が一番多いのはN=34のときで、その数は6個となっています。また17番目の素数p=2,3,5,7,11,13,17の内p=13以外の倍数判定が簡単にできるということなのでこれは34進法が最強と言えるのではないでしょうか。
 でも34進法には、人が扱うにおいて、少し難点があります。その難点を考慮すると次に素因数の個数が多いN=14,20,21,22,30,35,36の中でも36進法が扱いやすいんじゃないかと私は思いました。

記数法の難点

 私たちが使っている記数法では各桁の値を表わすもの(仮数)として0から9までのアラビア数字に続き必要に応じてA,B,C,とアルファベットが用いられます。しかしそれゆえに仮数の最大値が何だったかわからなくなって四則演算、特に繰り上がりの計算に手間取ってしまうことがあります。たとえば16進法では仮数は0からFまでの値を取りますが、このF=15(10)という事実は日頃10進法を使っている私たちにとってはぱっと出てこないもので、私が数学の授業とかで16進法を扱うときなんて毎度「A10だから、A,B,C,D,E,F...」と数えていたものです(今でもそうですが...)。
 つまるところ、「中途半端にアルファベットを使うとややこしくなるから、いっそZまで使っちゃえばわかりやすいんじゃね?」と思ったわけです私は。そうして思い至った10個のアラビア数字と26個のアルファベットを全て使って表される36進法は、偶然にも上で見たようにいい感じに多めの"いい"倍数判定法が成り立つ記数法の一つというのですからそれはそれは"いい"記数法と言えるのではないでしょうか。

まとめ

  • 36進法は"いい"倍数判定法がいい感じに多い
    • nの下k桁が2k,3kの倍数n2k,3kの倍数
    • nの各桁の和が5,7の倍数n5,7の倍数
    • nの各桁の交代和が37の倍数n37の倍数
  • 36進法は0からZまで使うので繰り上がりの計算がしやすい

さて、晴れて36進法の良さがわかったところで九九ならぬZZ表でも眺めて締めとしましょう。

123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ1123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ22468ACEGIKMOQSUWY10121416181A1C1E1G1I1K1M1O1Q1S1U1W1Y3369CFILORUX101316191C1F1I1L1O1R1U1X202326292C2F2I2L2O2R2U2X448CGKOSW1014181C1G1K1O1S1W2024282C2G2K2O2S2W3034383C3G3K3O3S3W55AFKPUZ14191E1J1O1T1Y23282D2I2N2S2X32373C3H3M3R3W41464B4G4L4Q4V66CIOU10161C1I1O1U20262C2I2O2U30363C3I3O3U40464C4I4O4U50565C5I5O5U77ELSZ161D1K1R1Y252C2J2Q2X343B3I3P3W434A4H4O4V52595G5N5U61686F6M6T88GOW141C1K1S20282G2O2W343C3K3S40484G4O4W545C5K5S60686G6O6W747C7K7S99IR10191I1R20292I2R30393I3R40494I4R50595I5R60696I6R70797I7R80898I8RAAKU141E1O1Y282I2S323C3M3W464G4Q505A5K5U646E6O6Y787I7S828C8M8W969G9QBBMX181J1U252G2R323D3O3Z4A4L4W575I5T646F6Q717C7N7Y898K8V969H9SA3AEAPCCO101C1O202C2O303C3O404C4O505C5O606C6O707C7O808C8O909C9OA0ACAOB0BCBODDQ131G1T262J2W393M3Z4C4P525F5S656I6V787L7Y8B8O919E9RA4AHAUB7BKBXCACNEES161K1Y2C2Q343I3W4A4O525G5U686M707E7S868K8Y9C9QA4AIAWBABOC2CGCUD8DMFFU191O232I2X3C3R464L505F5U696O737I7X8C8R969LA0AFAUB9BOC3CICXDCDRE6ELGGW1C1S282O343K404G4W5C5S686O747K808G8W9C9SA8AOB4BKC0CGCWDCDSE8EOF4FKHHY1F1W2D2U3B3S494Q575O656M737K818I8Z9G9XAEAVBCBTCACRD8DPE6ENF4FLG2GJII101I202I303I404I505I606I707I808I909IA0AIB0BIC0CID0DIE0EIF0FIG0GIH0HIJJ121L242N363P484R5A5T6C6V7E7X8G8Z9IA1AKB3BMC5COD7DQE9ESFBFUGDGWHFHYIHKK141O282S3C3W4G505K646O787S8C8W9GA0AKB4BOC8CSDCDWEGF0FKG4GOH8HSICIWJGLL161R2C2X3I434O595U6F707L868R9C9XAIB3BOC9CUDFE0ELF6FRGCGXHII3IOJ9JUKFMM181U2G323O4A4W5I646Q7C7Y8K969SAEB0BMC8CUDGE2EOFAFWGIH4HQICIYJKK6KSLENN1A1X2K373U4H545R6E717O8B8Y9LA8AVBIC5CSDFE2EPFCFZGMH9HWIJJ6JTKGL3LQMDOO1C202O3C404O5C606O7C808O9CA0AOBCC0CODCE0EOFCG0GOHCI0IOJCK0KOLCM0MONCPP1E232S3H464V5K696Y7N8C919QAFB4BTCID7DWELFAFZGOHDI2IRJGK5KULJM8MXNMOBQQ1G262W3M4C525S6I787Y8O9EA4AUBKCAD0DQEGF6FWGMHCI2ISJIK8KYLOMEN4NUOKPARR1I29303R4I59606R7I89909RAIB9C0CRDIE9F0FRGIH9I0IRJIK9L0LRMIN9O0ORPIQ9SS1K2C343W4O5G68707S8K9CA4AWBOCGD8E0ESFKGCH4HWIOJGK8L0LSMKNCO4OWPOQGR8TT1M2F38414U5N6G79828V9OAHBAC3CWDPEIFBG4GXHQIJJCK5KYLRMKNDO6OZPSQLRES7UU1O2I3C46505U6O7I8C96A0AUBOCIDCE6F0FUGOHIICJ6K0KULOMINCO6P0PUQORISCT6VV1Q2L3G4B56616W7R8M9HACB7C2CXDSENFIGDH8I3IYJTKOLJMEN9O4OZPUQPRKSFTAU5WW1S2O3K4G5C6874808W9SAOBKCGDCE8F4G0GWHSIOJKKGLCM8N4O0OWPSQORKSGTCU8V4XX1U2R3O4L5I6F7C8996A3B0BXCUDREOFLGIHFICJ9K6L3M0MXNUORPOQLRISFTCU9V6W3YY1W2U3S4Q5O6M7K8I9GAEBCCAD8E6F4G2H0HYIWJUKSLQMONMOKPIQGRESCTAU8V6W4X2ZZ1Y2X3W4V5U6T7S8R9QAPBOCNDMELFKGJHIIHJGKFLEMDNCOBPAQ9R8S7T6U5V4W3X2Y1


 
 
・・
 
 
 
 
・・・・
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
 
 
 
 
???「君、36進法では繰り上がりの計算がしやすいって言ったよね?」
 
 
???「じゃあM(36)+A(36)+T(36)+H(36)はいくらになるかわかるよね?」
 
 
 
 
( ´_ゝ`)

 
 
 
 
 
 
(´_ゝ`)
 
 
 
 
 
 
 
 
 

yakekuso.png yakekuso.png

結局文字は少ないに越したことはないね!
現実的には14進数くらいが一番優秀なんじゃないですかね。
人間の手足の指が各7本ずつだったらもっと世界は違っていたかもしれませんね。
ちなみにM(36)+A(36)+T(36)+H(36)=26(36)=78(10)です。

では

投稿日:202187
更新日:2024512
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。
バッチを贈って投稿者を応援しよう

バッチを贈ると投稿者に現金やAmazonのギフトカードが還元されます。

投稿者

子葉
子葉
1079
264380
主に複素解析、代数学、数論を学んでおります。 私の経験上、その証明が簡単に探しても見つからない、英語の文献を漁らないと載ってない、なんて定理の解説を主にやっていきます。 同じ経験をしている人の助けになれば。最近は自分用のノートになっている節があります。

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中
  1. はじめに
  2. 倍数判定法
  3. "いい"進法
  4. 記数法の難点
  5. まとめ