kstenerud/safe-encoding

Bases between 56 and 64

Opened this issue · 1 comments

There are definitely a non human-proof encodings that we can explore as an academic exercise on what encoding is best for bitcoin wallets, web usage and other weird applications
https://github.com/search?q=base62
https://github.com/search?q=base60
https://github.com/aakashchandhoke/url-shortener (base59)
https://github.com/search?q=base58
https://github.com/wyattisimo/base57-ruby
https://github.com/2sh/num-radix (base64/62/57)
https://github.com/search?q=base56

from math import log
for j in range(1, 65):
  a = 0.8
  for i in range(56, 64):
    b = 8*j*log(2)/log(i)%1
    if b > a:
      a = b
      print(j, i, a, 8*j*log(2)/log(i)//1)

5 56 0.8878173517639238 6.0
8 57 0.9722624367304604 10.0
11 59 0.9592622332484346 14.0
13 56 0.9083251145862015 17.0
14 60 0.9609064510635221 18.0
16 57 0.9445248734609208 21.0
17 61 0.9313814217721514 22.0
19 58 0.9475065088854606 25.0
20 61 0.9780957903201752 26.0
21 56 0.9288328774084817 28.0
22 59 0.9185244664968693 29.0
23 62 0.9025753280957183 30.0
24 57 0.9167873101913813 32.0
25 59 0.9983232573828076 33.0
26 56 0.8166502291724029 35.0
26 62 0.9333460230647219 34.0
27 58 0.8727724073635486 36.0
28 60 0.9218129021270443 37.0
29 56 0.9493406402307585 39.0
29 62 0.9641167180337291 38.0
30 58 0.9697471192928333 40.0
31 60 0.984864284497803 41.0
32 57 0.8890497469218417 43.0
32 62 0.9948874130027363 42.0
33 59 0.8777866997453003 44.0
34 56 0.8371579919946797 46.0
34 61 0.8627628435443029 45.0
35 63 0.8440500668487516 46.0
36 59 0.9575854906312387 48.0
37 56 0.9698484030530352 50.0
38 58 0.8950130177709212 51.0
39 60 0.8196679708198076 52.0
40 57 0.8613121836523021 54.0
40 61 0.9561915806403505 53.0
41 58 0.9919877297001989 55.0
42 56 0.8576657548169635 57.0
42 60 0.8827193531905664 56.0
43 57 0.9759105974262212 58.0
44 59 0.8370489329937385 59.0
44 63 0.8896629411812995 58.0
45 56 0.990356165875312 61.0
46 58 0.8202789162490092 62.0
47 59 0.9168477238796768 63.0
48 57 0.8335746203827625 65.0
49 58 0.9172536281782868 66.0
50 56 0.8781735176392402 68.0
50 59 0.9966465147656152 67.0
51 57 0.9481730341566816 69.0
52 62 0.8666920461294438 69.0
53 63 0.9352758155138332 70.0
54 61 0.8408586338644852 72.0
55 62 0.897462741098451 73.0
56 57 0.805837057113223 76.0
56 60 0.8436258042540885 75.0
56 63 0.9504801069580111 74.0
57 58 0.842519526656389 77.0
57 61 0.887573002412509 76.0
58 56 0.898681280461517 79.0
58 62 0.9282334360674582 77.0
59 57 0.9204354708871421 80.0
59 63 0.965684398402189 78.0
60 58 0.9394942385856666 81.0
61 59 0.9559087480140391 82.0
61 62 0.9590041310364654 81.0
62 60 0.9697285689956061 83.0
62 63 0.9808886898463811 82.0
63 61 0.9810017395085566 84.0
64 62 0.9897748260054726 85.0