Вы предоставили код и просите нас предоставить математический эквивалент - поэтому я собираюсь воспринимать ваш код буквально и предполагать, что это язык типа C.
В этом случае среды, ^ - это побитовый оператор XOR. Итак, после цикла x = 10, поскольку он был обработан XOR с константой 2 (переключение бита следующего за LSB) четное число раз.
Или это был просто псевдокод - вы действительно имели в виду возведение в степень?
for(int i=0; i<n; i++)
x = x^p
эквивалентно:
x = x^(p^n)
Математическое название класса задачи, которое вы указали, - повторение отношение . Отношение рекуррентности определяет последовательность A n в терминах предыдущих терминов A n-1 , A n-2 и т. Д. В вашем случае
A n = A n-1 2
Как показали другие ответы, создание решения в закрытой форме для данного примера несложно. Решение рекуррентного соотношения может быстро стать намного сложнее, если в него внести простые на первый взгляд изменения:
A n = A n-1 2 + c
Такое нелинейное рекуррентное соотношение может даже не иметь решения в замкнутой форме, в зависимости от значения c . (Между прочим, при использовании с комплексными числами вышеупомянутое рекуррентное соотношение лежит в основе множества Мандельброта .)
Что-то (исходное значение 10 в вашем случае) будет возведено в квадрат 3000 раз.
Учитывая, что это константа, как насчет
x = 10000000... (etc.)
Но я подозреваю, что вам нужно что-то более содержательное:
x = 10^6000
Или даже больше:
x = (10^2)^3000
Или (если вы позволите немного более свободные обозначения ):
x = (10^2) ... ^2
с горизонтальным "} 3000" под "...".