Как Вы переводите это для цикла в математику

6 ответов

x ^ (2 ^ 3000), где ^ означает степень

10
ответ дан 18 December 2019 в 06:51
поделиться

Вы предоставили код и просите нас предоставить математический эквивалент - поэтому я собираюсь воспринимать ваш код буквально и предполагать, что это язык типа C.

В этом случае среды, ^ - это побитовый оператор XOR. Итак, после цикла x = 10, поскольку он был обработан XOR с константой 2 (переключение бита следующего за LSB) четное число раз.

Или это был просто псевдокод - вы действительно имели в виду возведение в степень?

6
ответ дан 18 December 2019 в 06:51
поделиться
for(int i=0; i<n; i++)
    x = x^p

эквивалентно:

x = x^(p^n)
4
ответ дан 18 December 2019 в 06:51
поделиться

Математическое название класса задачи, которое вы указали, - повторение отношение . Отношение рекуррентности определяет последовательность A n в терминах предыдущих терминов A n-1 , A n-2 и т. Д. В вашем случае

A n = A n-1 2

Как показали другие ответы, создание решения в закрытой форме для данного примера несложно. Решение рекуррентного соотношения может быстро стать намного сложнее, если в него внести простые на первый взгляд изменения:

A n = A n-1 2 + c

Такое нелинейное рекуррентное соотношение может даже не иметь решения в замкнутой форме, в зависимости от значения c . (Между прочим, при использовании с комплексными числами вышеупомянутое рекуррентное соотношение лежит в основе множества Мандельброта .)

6
ответ дан 18 December 2019 в 06:51
поделиться

Что-то (исходное значение 10 в вашем случае) будет возведено в квадрат 3000 раз.

0
ответ дан 18 December 2019 в 06:51
поделиться

Учитывая, что это константа, как насчет

x = 10000000... (etc.)

Но я подозреваю, что вам нужно что-то более содержательное:

x = 10^6000

Или даже больше:

x = (10^2)^3000

Или (если вы позволите немного более свободные обозначения ):

x = (10^2) ... ^2

с горизонтальным "} 3000" под "...".

-3
ответ дан 18 December 2019 в 06:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: