
Python
Программирование на языке Python
Помогите пожалуйста очень срочно 

По первой задаче.
1) Тебе задали сделать фигню. Питон - не функциональный язык, в нём нет хвостовых оптимизаций. Рекурсия будет переполнять стек и довольно быстро.
2) Никто не считает факториалы умножением в лоб, это очень долго.
3) Один вопрос - одна задача. Вот твой вопрос уже 7 часов висит, а постил бы по одной задаче - давно получил бы ответы, как другие делают.
Вот реализация факториала с рекурсивными функциями. Функция naivefact (рекурсивная) используется для малых n, factorial - для больших. В оптимизированном вычислении факториала рекурсия используется для вычисления произведения нечётных делителей. Чётные делители (степени 2) собираются в один счётчик, который в конце используется для битового сдвига (быстрого умножения на степень 2 приписыванием двоичных нолей в конец числа).
1) Тебе задали сделать фигню. Питон - не функциональный язык, в нём нет хвостовых оптимизаций. Рекурсия будет переполнять стек и довольно быстро.
2) Никто не считает факториалы умножением в лоб, это очень долго.
3) Один вопрос - одна задача. Вот твой вопрос уже 7 часов висит, а постил бы по одной задаче - давно получил бы ответы, как другие делают.
Вот реализация факториала с рекурсивными функциями. Функция naivefact (рекурсивная) используется для малых n, factorial - для больших. В оптимизированном вычислении факториала рекурсия используется для вычисления произведения нечётных делителей. Чётные делители (степени 2) собираются в один счётчик, который в конце используется для битового сдвига (быстрого умножения на степень 2 приписыванием двоичных нолей в конец числа).
# Факториал произведением чисел "в лоб" - годится только для малых n
def naivefact(n): return 1 if n > 1
return l
# Количество единиц в двоичной записи числа
def ones(n):
c = 0
while n != 0: c, n = c + 1, n & (n - 1)
return c
# Рекурсивная функция: произведение нечётных чисел в диапазоне [k, n)
# Вызывает себя для каждой половины диапазона, пока длина диапазона не станет меньше порога
from math import prod
def factorial_partial_product(k, n, maxb):
c = (n - k) // 2
if (c > i
if (v
Похожие вопросы
- Программирование на языке python, помогите советом. Вопрос от чайника.
- Программирование на языке Python
- Задача на тему циклов по программированию на языке Python, помогите.
- Можно ли такое написать на компьютерном языке PYTHON
- Подскажите ресурс\книги с примерами по высшей математике и их решений на языке Python
- Что такое переменные и типы данных в языке python
- Очень понравился язык Python, нужны ли на рынке труда узкие специалисты со знанием только одного языка?
- Pascal или Python? Есть ли смысл продолжать учить Pascal? Или стоит учить более прогрессивный язык Python?
- Помогите пж, я новичок в языке python.
- Задача по языку Python