Определение произвольного диапазона цифр в целевой базе на основе последовательности и исходной базы - PullRequest
1 голос
/ 13 сентября 2010

Если у меня есть функция f , которая вычисляет элемент m последовательности цифр в базе b , возможно ли вообще написать функцию g , который вычисляет элемент n соответствующей последовательности в базе c ?

В качестве надуманного примера, скажем, f производит двоичный код, а g производит шестнадцатеричный:

<i>f</i>(<i>m</i>) &rarr; 1, 0, 1, 0, 1, 0, 1, 0, ...
<i>g</i>(<i>n</i>) &rarr; A, A, ...

Теперь скажите, f - в базе 5, а g - в базе 6. Основания не имеют общего множителя, что означает, что количество цифр, необходимое для представления число из исходной базы в целевой базе является дробным ( 6 & frasl; 5 ). Можно ли определить одну цифру из g , используя, скажем, только c & frasl; b цифры от f ?

Обратите внимание, что запуск формулы в первом элементе аналогичен выполнению стандартного преобразования дробного числа из b в c , но я хочу произвольный элемент цели последовательность, так же, как я могу получить произвольный элемент источника.

1 Ответ

1 голос
/ 24 октября 2010

Я не думаю, что есть более простой способ, чем последовательное деление на основание и сохранение остатка.Конечно, для деления числа, представленного в произвольной базе, также потребуется линейный объем работы.

Допустим, что f представляет число N, тогда в основном

g(1) = N % c;
g(2) = (N / c) % c;
....
....
....

Возможно, нет необходимостичтобы вычислить N явно, вы можете просто сделать это неявно в базе b.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...