Основно съдържание
Курс: Компютърни науки > Раздел 1
Урок 6: Рекурентни алгоритми- Рекурсия
- Функцията факториел
- Предизвикателство: Итеративен факториел
- Рекурсивен факториел
- Предизвикателство: Рекурсивен факториел
- Свойсва на рекурентни алгоритми
- Приложение на рекурсия за определяне дали една дума е палиндром
- Предизвикателство: Проверка дали един стринг е палиндром
- Изчисляване на степени на числа
- Предизвикателство: Рекурентни сили
- Запълване на Серпински
- Проект: Рекурентно изкуство
© 2024 Khan AcademyУсловия за ползванеДекларация за поверителностПолитика за Бисквитки
Изчисляване на степени на числа
Въпреки че в JavaScript има вградена функция
pow
, която изчислява степента на някакво число, можеш да напишеш рекурентно подобна функция, която да е много ефективна. Единствената уловка е, че степенният показател трябва да бъде цяло число.Да предположим, че искаш да изчислиш , където е всяко реално число, а е всяко цяло число. Лесно е, ако е 0, тъй като без значение колко е . Това е добър основен случай.
Да видим какво се случва, когато е положително. Да започнем, като си припомним, че, когато умножаваш степените на , събираш степенните показатели: за всяка основа и всеки степенен показател и . Следователно, ако е положително и четно число, тогава . Ако искаш да изчислиш рекурентно, тогава можеш да изчислиш като . Ами ако е положително и нечетно число? Тогава , а е 0 или положително и четно. Току що видяхме как да изчислим степените на , когато степенният показател е 0 или положително четно число. Следователно можеш да изчислиш рекурентно , а след това да използваш резултата, за да изчислиш .
Ами ако е отрицателно? Тогава и степенният показател е положителен, тъй като е отрицание на отрицателно число. Така че можеш да изчислиш рекурентно и да вземеш реципрочното му число.
Като вземем предвид тези неща, получаваме следния рекурсивен алгоритъм за изчисляването на :
- Основният случай е, когато
, а . - Ако
е положително и четно число, изчисляваме рекурентно , а след това . Забележи, че в този случай можеш да се измъкнеш само с едно рекурентно извикване, като изчислиш само веднъж, а след това да умножиш резултата от това рекурентно извикване по него самия. - Ако
е положително нечетно число, изчисляваме рекурентно , а степенният показател е 0 или положително четно число. Тогава . - Ако
е отрицателно, изчисляваме рекурентно , за да може степенният показател да стане положителен. Тогава .
Това съдържание е резултат от съвместната дейност на преподавателите по Компютърни науки в Дартмут Thomas Cormen и Devin Balkcom, както и на екипа по компютърни науки на Кан Академия. Съдържанието е лицензирано CC-BY-NC-SA.
Искаш ли да се присъединиш към разговора?
Все още няма публикации.