Оптимальная система счисления 2.0
Конструктивный разговор в предыдущем посте со
spamsink, а также
vmenshov и
doncunita принес плоды. Было высказано, что полученная формула q(n) = lg(n) / n * d(n) * 2,5 слишком завышает позиции систем счисления с большими основаниями; далее, не все делители одинаково полезны - одно дело взаимно простые, а другое - степени простого числа, наличие которых не избавляет дроби в какой-либо системе от периодов.
Вопрос был в том, какие коррективы можно внести в формулу, не спускаясь до индивидуального подхода в абсолютный субъективизм. Еще раз поделить на n - тогда впереди окажется вовсе двоичная, что явно не так. Наконец часов десять назад меня осенило: вместо d(n) нужно также взять его логарифм! Если по основанию 2, то для чисел без степеней в каноническом разложении он будет совпадать с количеством простых делителей (30=2х3х5, 8 делителей, 3 простых делителя). А степени как раз ценятся меньше: 18=2х3х3, 6 делителей --> логарифм 2,585 вместо 3, 24=2х2х2х3, 8 делителей --> логарифм 3 вместо 4. Если вы понимаете, о чем я.
Далее, раз уж берем двоичный логарифм lb(d(n)), то для порядка возьмем и lb(n) вместо lg(n) - разница будет только в коэффициенте пропорциональности. Можно вновь домножить до q(10) = 1, но можно оставить и без этого, будет даже изящнее. Итак, формула коэффициента эргономичности позиционной системы счисления:
q(n) = lb(n) * lb(d(n)) / n, где lb - обозначение логарифма по основанию 2, d(n) - количество делителей n. Нормированный по десятке q'(n) также привел. Таблица лидеров в данном случае выглядит так:
Красота. А наиболее удобной в данном случае следует признать систему счисления по основанию 6. Преимущества перед десятичной - 6 делится на 2 и 3 вместо 2 и 5, а на 3 приходится делить чаще; таблица умножения существенно короче и мнемоничнее, в то время как числа длиннее лишь на четверть.
Вопрос был в том, какие коррективы можно внести в формулу, не спускаясь до индивидуального подхода в абсолютный субъективизм. Еще раз поделить на n - тогда впереди окажется вовсе двоичная, что явно не так. Наконец часов десять назад меня осенило: вместо d(n) нужно также взять его логарифм! Если по основанию 2, то для чисел без степеней в каноническом разложении он будет совпадать с количеством простых делителей (30=2х3х5, 8 делителей, 3 простых делителя). А степени как раз ценятся меньше: 18=2х3х3, 6 делителей --> логарифм 2,585 вместо 3, 24=2х2х2х3, 8 делителей --> логарифм 3 вместо 4. Если вы понимаете, о чем я.
Далее, раз уж берем двоичный логарифм lb(d(n)), то для порядка возьмем и lb(n) вместо lg(n) - разница будет только в коэффициенте пропорциональности. Можно вновь домножить до q(10) = 1, но можно оставить и без этого, будет даже изящнее. Итак, формула коэффициента эргономичности позиционной системы счисления:
q(n) = lb(n) * lb(d(n)) / n, где lb - обозначение логарифма по основанию 2, d(n) - количество делителей n. Нормированный по десятке q'(n) также привел. Таблица лидеров в данном случае выглядит так:
| n | d(n) | lb(n) | lb(d(n)) | q(n) | q'(n) |
| 6 | 4 | 2,585 | 2 | 0,862 | 1,297 |
| 4 | 3 | 2 | 1,585 | 0,792 | 1,193 |
| 12 | 6 | 3,585 | 2,585 | 0,772 | 1,162 |
| 8 | 4 | 3 | 2 | 0,750 | 1,129 |
| 10 | 4 | 3,322 | 2 | 0,664 | 1,000 |
| 18 | 6 | 4,170 | 2,585 | 0,599 | 0,901 |
| 16 | 5 | 4 | 2,322 | 0,580 | 0,874 |
| 24 | 8 | 4,585 | 3 | 0,573 | 0,863 |
| 20 | 6 | 4,322 | 2,585 | 0,559 | 0,841 |
| 9 | 3 | 3,170 | 1,585 | 0,558 | 0,840 |
| 14 | 4 | 3,807 | 2 | 0,544 | 0,819 |
| 3 | 2 | 1,585 | 1 | 0,528 | 0,795 |
| 15 | 4 | 3,907 | 2 | 0,521 | 0,784 |
| 2 | 2 | 1 | 1 | 0,500 | 0,753 |
| 30 | 8 | 4,907 | 3 | 0,491 | 0,739 |
| 5 | 2 | 2,322 | 1 | 0,464 | 0,699 |
| 36 | 9 | 5,170 | 3,170 | 0,455 | 0,685 |
| 28 | 6 | 4,807 | 2,585 | 0,444 | 0,668 |
Красота. А наиболее удобной в данном случае следует признать систему счисления по основанию 6. Преимущества перед десятичной - 6 делится на 2 и 3 вместо 2 и 5, а на 3 приходится делить чаще; таблица умножения существенно короче и мнемоничнее, в то время как числа длиннее лишь на четверть.