от правого края
от правого края записи к левому, от a0 к ak.
Можно предложить иной вариант (назовем его Dec_P_v2), когда разложение формируется в противоположном порядке - слева направо, от ak к a0. Для этого следует
*
подобрать такое значение k, чтобы выполнялось неравенство
pk+1>n?(|Ap|-1)pk, где |Ap| - мощность алфавита Ap;
для чего потребуется использовать линейный цикл;
*
затем, на каждом очередном шаге k, определять значение множителя ak из алфавита Ap, минимизирующее разность (n-ak*pk).
Ясно, что этот алгоритм, в сравнении с предыдущим, более трудоемок. Однако в ряде частных случаев он вполне жизнеспособен.
Так, при p=2 в алфавите A2 только два элемента, 0 и 1. Поэтому и вычисления столь элементарны, что их несложно проделывать в уме (вспомним: таблицу степеней 2 мы давно выучили наизусть - Занятие B1).
Для того же примера с числом n=412:
*
подбираем (в цикле!) k=8, т.к. 29>412?28;
*
и далее цепочка вычислений такова -
41210=1*28+156
=1*28+1*27+28
Индекс
Элементарные функции
Линейные уравнения
Нелинейные уравнения
Случайные числа