If you're seeing this message, it means we're having trouble loading external resources on our website.

Егер веб фильтрлерін қолдансаң, *.kastatic.org мен *.kasandbox.org домендері бұғатталмағанын тексер.

Негізгі бет

Санның дәрежелерін есептеу

JavaScript-те санның дәрежесін есептейтін кірістірілген pow (дәреже) функциясы болса да, сіз ұқсас функцияны рекурсивті түрде жаза аласыз және бұл өте тиімді болуы мүмкін. Жалғыз қиындық - біздің көрсеткішіміз бүтін сан болу керек.
Сіз xn есептегіңіз келеді делік, мұндағы x - кез-келген нақты сан, ал n - кез-келген бүтін сан. Егер n 0 болса, бұл оңай шығарылады, өйткені x0=1, x қандай болмасын. Бұл жақсы негізгі нұсқа.
Енді n оң сан болған кезде не болатынын көрейік. x дәрежелерін көбейту кезінде сіз өлшемдерді қосатындығыңызды еске түсірейік: xaxb=xa+b кез-келген базалық x және кез-келген a және bкөрсеткіштері үшін. Сондықтан, егер n оң және жұп болса, онда xn=xn/2xn/2. Егер сіз y=xn/2 рекурсивті түрде есептеуіңіз керек болса, онда сіз xn -ді yy ретінде есептей аласыз. Егер n оң және тақ болса ше? Ондай болса xn=xn1x, ал n1 нөл немесе оң және жұп болады. Біз x дәрежесін қалай есептеу керектігін көрдік, егер көрсеткіш 0-ге тең болса немесе кез келген оң сан және жұп сан болса. Сондықтан сіз xn1 рекурсивті түрде есептей аласыз, содан кейін осы нәтижені xn=xn1x есептеу үшін қолдана аласызx
Ал n теріс болғанда ше? Онда xn=1/xn, ал n дәрежесі оң, өйткені бұл теріс санның теріске шығарылуы. Осылайша сіз xn рекурсивті түрде есептеп, оның кері мәнін қабылдай аласыз.
Осы бақылауларды біріктіре отырып, біз келесі рекурсивті есептеу алгоритмін аламыз xn:
  • Негізгі жағдай - n=0 және x0=1.
    • егер n оң және жұп болса, рекурсивті түрде y=xn/2, сонда xn=yy -деп есептеңіз. Назар аударыңыз, бұл жағдайда сіз тек бір рекурсивті қоңырауды орындаудан, xn/2 есептеуді бір рет жасай аласыз, содан кейін сіз осы рекурсивті қоңыраудың нәтижесін өзіне көбейтесіз.
    • егер n оң және тақ болса, рекурсивті түрде xn1-деп есептейсіз, сондықтан көрсеткіш 0 немесе оң және жұп болады. Сонда xn=xn1x.
    • егер n теріс болса, рекурсивті түрде xn есептеңіз, сонда көрсеткіш оң болады. Сонда xn=1/xn болады.

Бұл мазмұн ынтымақтастықтың нәтижесі Дартмут компьютерлік ғылымы профессорлар [Томас Кормен](http://www.cs.dartmouth.edu / ~thc/) және [Дэвин Бэлком](http://www.cs.dartmouth.edu / ~devin/), сонымен қатар Хан академиясының компьютерлік оқу бағдарламасы бойынша тобы. Мазмұн лицензияланған CC-BY-NC-SA.