✅ The verified answer to this question is available below. Our community-reviewed solutions help you understand the material better.
// <![CDATA[ var ulObj = new Object(); ulObj.nimi = "fibo_arv"; ulObj.kirjeldus = "arvutab Binet' valemi põhjal " + "n" +"-nda Fibonacci arvu"; ulObj.kasEeldused = true; ulObj.eeldused = "arvu astendamine (" + "a" + "**" + "n" + ", " + "kus a" + " on konstant) on keerukusega " + teeta() + "(log " + "n" +")"; ulObj.kasLisainfo = false; //ulObj.lisainfo = ""; ulObj.programm = fibo_arv(); document.write(tookiirus_programm(ulObj)); // ]]>
Millistesse keerukusklassidesse kuulub funktsioon fibo_arv, mis arvutab Binet' valemi põhjal n-nda Fibonacci arvu? Eeldada, et arvu astendamine (a**n, kus a on konstant) on keerukusega Θ(log n).
Vali kõik sobivad vastused.
Keeles Python esitatud funktsioon:
from math import sqrt
def fibo_arv(n): # Binet' valem
phi1 = (1 + sqrt(5)) / 2
phi2 = (1 - sqrt(5)) / 2
return round((phi1 ** n - phi2 ** n) / sqrt(5))