Почему вычисление факториала с использованием многопроцессорной обработки происходит медленнее, чем с использованием рек ⇐ Python
Почему вычисление факториала с использованием многопроцессорной обработки происходит медленнее, чем с использованием рек
Я пытаюсь найти более быстрый способ вычисления факториала. В следующем коде я сначала использую метод рекурсии, а затем другой метод, разделяя всю операцию на более мелкие вычисления и затем запуская их параллельно.
Вот мой код:
#!/usr/bin/env python3 время импорта из пула импорта многопроцессорной обработки импортировать itertools факт факта(n): если n==1: вернуть 1 еще: а=n*факт(n-1) вернуть def divid(начало, конец): м=1 для меня в диапазоне (начало, конец+1): м=м*я вернуть м пул=Бассейн() а=время.время() рез=факт(100) печать (разрешение) print ("Время, потраченное на вычисление факториала",(time.time()-a)*60) а=время.время() L = пул.starmap(делитель,[(1,25),(26,50),(51,75),(76,100)] ) м=1 для меня в списке (L): м=м*я print ("Результат", м) print("Время, потраченное на вычисление факториала с использованием многопроцессорной обработки",(time.time()-a)*60) Запустив этот код для факториала(100), я обнаружил, что метод рекурсии в 2 раза быстрее, чем использование многопроцессорной обработки.
Я пытаюсь найти более быстрый способ вычисления факториала. В следующем коде я сначала использую метод рекурсии, а затем другой метод, разделяя всю операцию на более мелкие вычисления и затем запуская их параллельно.
Вот мой код:
#!/usr/bin/env python3 время импорта из пула импорта многопроцессорной обработки импортировать itertools факт факта(n): если n==1: вернуть 1 еще: а=n*факт(n-1) вернуть def divid(начало, конец): м=1 для меня в диапазоне (начало, конец+1): м=м*я вернуть м пул=Бассейн() а=время.время() рез=факт(100) печать (разрешение) print ("Время, потраченное на вычисление факториала",(time.time()-a)*60) а=время.время() L = пул.starmap(делитель,[(1,25),(26,50),(51,75),(76,100)] ) м=1 для меня в списке (L): м=м*я print ("Результат", м) print("Время, потраченное на вычисление факториала с использованием многопроцессорной обработки",(time.time()-a)*60) Запустив этот код для факториала(100), я обнаружил, что метод рекурсии в 2 раза быстрее, чем использование многопроцессорной обработки.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение