поэтому у меня есть вопрос об алгоритме, который я должен «изобрести»/«найти». Это алгоритм, который вычисляет 2^(n) - 1 для Ө (n^n) и Ө (1) и Ө (n).Существует ли даже алгоритм для 2^(n) - 1, который лежит в Theta Ө (1)?
Я думал несколько часов, но не смог найти решения для обеих задач (первые, в то время как последний был easist imo, я разместил алгоритм ниже). Но я недостаточно квалифицирован, чтобы «изобретать»/«находить» один для очень медленного и очень быстрого алгоритма.
До сих пор мои алгоритмы (в псевдокод):
Один для Ө (п)
int f(int n) {
int number = 2
if(n = 0) then return 0
if(n==1) then return 1
while(n > 1)
number = number * 2
n--
number = number - 1
return number
Простой один и любопытное очевидно, один, который использует рекурсию, хотя я не знаю, как быстро это (было бы неплохо, если бы кто-то может сказать мне, что):
int f(int n) {
if(n==0) then return 0
if(n==1) then return 1
return 3*f(n-1) - 2*f(n-2)
}
Какого вопрос именно? – amit
Вопрос в том, способен ли кто-нибудь найти алгоритм для 2^(n) - 1, который лежит в тете Ө (n^n) или тета Ө (1), так как, к сожалению, я недостаточно компетентен. И если не существует одного для этого имени Тетас, тогда это тоже хорошо, так как тогда я буду знать, что бессмысленно тратить больше времени на это. – Kaseop
Псст. Слышал о '' 'операторе? 'int Theta1 (int n) {return (1 << n) -1;}'. –