Лучшие помощники
- Megamozg 2200 б
- Matalya1 1800 б
- DevAdmin 1705 б
- arkasha_bortnikov 895 б
- Dwayne_Johnson 860 б
2 апреля 2023 15:14
960
СРОЧНО!!! НА ПИТОНЕ!!! ДАЮ 100 БАЛЛОВ!!! Быстрое возведение в степень Возводить в степень можно гораздо быстрее, чем за n умножений! Для этого нужно воспользоваться следующими рекуррентными соотношениями: an=(a2)n/2 при чётном n, an=a∗an−1 при нечётном n. Реализуйте алгоритм быстрого возведения в степень. Если вы всё сделаете правильно, то количество умножений будет иметь порядок log2n. Нельзя использовать операцию возведения в степень.Входные данные
Вводится действительное число a и целое неотрицательное число n.
Выходные данные
Выведите ответ на задачу.
Примеры
Ввод
2
7
Вывод
128
Ввод
1.00001
100000
Вывод
2.71827
1
ответ
Ответ:
=== Python 3.8.3 ===
def fastExp(b, n):
def even(n):
if n % 2 == 0:
return True
return False
if n == 0:
return 1
if even(n):
#Можно было написать return fastExp(b, b/2) ** 2, но операцию возведения в степень использовать нам запретили.
res = fastExp(b, n/2)
return res*res
return b*fastExp(b, n-1)
def main():
base = float(input())
exp = int(input())
print(fastExp(base, exp))
if __name__ == "__main__":
main()
Предложенные тесты проходит. Сам алгоритм быстрого возведения в степень реализован в виде функции fastExp(b, n)
=== Python 3.8.3 ===
def fastExp(b, n):
def even(n):
if n % 2 == 0:
return True
return False
if n == 0:
return 1
if even(n):
#Можно было написать return fastExp(b, b/2) ** 2, но операцию возведения в степень использовать нам запретили.
res = fastExp(b, n/2)
return res*res
return b*fastExp(b, n-1)
def main():
base = float(input())
exp = int(input())
print(fastExp(base, exp))
if __name__ == "__main__":
main()
Предложенные тесты проходит. Сам алгоритм быстрого возведения в степень реализован в виде функции fastExp(b, n)
0
·
Хороший ответ
4 апреля 2023 15:14
Остались вопросы?
Еще вопросы по категории Информатика
В файле 17.txt содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от –10 000 до 10 000 включительно...
Приведите примеры: а) пустого множества; б) множества, состоящего из одного элемента; в) множества, состоящего из 10 элементов; г) бесконечного мно...
Ученик скачивает файл с домашним заданием весом 0,8 Мбайт. Скорость скачивания — 3,2 Кбайт/с. Сколько времени будет скачиваться файл? Запишите ответ в...
Брюссель Лондон Мадрид Москва Нью Йорк Париж Какое слово лишнее Помогите пожалуйста...
ПОМОГИТЕ ПО ИНФОРМАТИКЕ ПОЖАЛУЙСТА! Ниже представлены два фрагмента таблиц из базы данных о жителях микрорайона. Каждая строка таблицы 2 содержи...
Все предметы