如何在 Python 中查找阶乘 [附编码示例]
已发表: 2020-11-30目录
介绍
我们每个人都必须熟悉阶乘这个词,因为我们都在小学数学科目中被介绍过。 阶乘是从 1 到给定数字的所有正整数的乘积。 Factorial 仅针对正值计算,不能针对 Negative 和 Float 类型计算。
我想知道当我学习阶乘和其他数学概念时,我会在现实生活中使用它们,这要归功于数据科学,因为我现在能够理解所有数学组件的重要性,例如线性代数、概率、统计。
让我们看看阶乘的重要性,在这篇文章中使用 python 计算它的不同方法。
重要性
让我们举个例子,我们在一场世界赛事中有 10 辆车之间的比赛,我们有一个问题陈述来找出这 10 辆车有多少种方式获得第一、第二、第三。 由于只有 10 辆汽车,我们只想拿一张纸,写下各种组合。 但是,如果我们有 100 辆或更多的赛事,并且我们有相同或相似的问题陈述,该怎么办?
为了解决这些情况,我们有一个叫做Permutation的东西。 我想你会知道这个词在我们小学里是排列和组合。 如果您想掌握数据分析和统计技能,这些都是非常需要的。 如果您是初学者并且有兴趣了解有关数据科学的更多信息,请查看我们来自顶尖大学的数据科学课程。 这有助于解决如下所述的问题陈述。
解决方案
我们一共有10辆车。
我们需要找出 10 人中有 3 人获胜的可能性。
10! /(10-3)! = 10! /7! = 720
所以,我们总共有 720 种可能性让这 10 辆车在比赛中获得第一、第二、第三名。
Python 实现
Python 是一种高级的、解释性的和通用的编程语言,它专注于代码的可读性,与 Java 或 C++ 相比,Python 语言中使用的语法帮助程序员以更少的步骤完成编码,并且它构建在 C 之上。
该语言由开发者Guido Van Rossum于 1991 年创立。 Python 广泛用于大型组织,因为主要用于各种人工智能用例,例如计算机视觉、自然语言处理、深度学习、语音识别、人脸识别、语音识别。
Python 是一种非常强大的编程工具,可用于现实生活中的各种用例。 它提供了一个直接函数,可以计算给定数字的阶乘,而无需显式编写代码。 但是,让我们从一种天真的方法开始,最后了解该功能。
另请阅读:为什么 Python 如此受开发人员欢迎?
循环
我们可以通过在每一步乘以从数字 1 迭代到给定数字来计算数字的阶乘。 让我们跳入上述方法的编码部分。
代码
number = input (“Enter a Number:”) # 理想情况下,您可以使用任何打印信息
阶乘 = 1
if int (number) >=1: # 检查给定的数字是否为正数。
for i in range (1, int(number)+1): # 从数字 1 循环
factorial = factorial * I # 与每个数字相乘。
print (“Factorial of “, number, ” is: “, factorial) # 打印计算出的阶乘。
输出
运行上面的代码将为您提供以下输出:
输入一个数字:5
5 的阶乘是:120
递归函数
在这种情况下,我们将在 python 中创建自己的用户定义函数,这将帮助我们计算给定数字的阶乘。

代码
number = input (“输入一个数字:”)
def recursive_factorial(number): # 用户定义的递归函数。
if number == 1: # 给定数字是否等于 1 的条件
退货号码
elif number < 1: # 给定数字小于 1 的条件
return (“给定的数字小于一,无法计算阶乘。”)
别的:
返回数字*recursive_factorial(数字 - 1)
打印 (recursive_factorial(int(number)))
输出
运行上面的代码将为您提供以下输出:
输入数字:5
120
输入一个数字:-2
给定的数字小于一且无法计算阶乘
输入一个数字:1
1
数学包中的阶乘函数
Python以其易用性和用户友好的第三方包而闻名,这将简化许多任务。 在当前情况下,Python 是数据科学家的首选语言。
代码
import math # 需要的包
number= input(“输入一个数字:”)
print("", number," 的阶乘是 :")
print(math.factorial(int(number))) # 计算阶乘的函数
输出
运行上面的代码将为您提供以下输出:
输入数字:5
5的阶乘是:
120
输入一个数字:5.6
回溯(最近一次通话最后):
5.6 的阶乘是:
文件“C:/Users....py”,第 5 行,在
打印(数学。阶乘(整数(数字)))
ValueError : 以 10 为基数的 int() 的无效文字:'5.6'
我们得到一个值错误,因为我们无法计算浮点整数的阶乘。 当我们显式编写 python 代码时,我们需要注意检查所有条件并输出相关消息,但是在 python 中 Math 包的阶乘函数中,它为我们做了所有事情,这有助于我们减少行代码在我们的项目或任何问题陈述中使用 Factorial。
必读: Python 教程
结论
在本文中,我们了解了阶乘和其他重要数学概念在现实生活中的重要性和应用。 通过不同类型的代码来计算给定数字的阶乘。 本文仅介绍 Python 中的阶乘,但 MATH 包中还有许多其他数学计算。 刚接触 Python 的人可以更深入地了解它们,甚至可以尝试一些。
如果您想了解数据科学,请查看 IIIT-B 和 upGrad 的数据科学执行 PG 计划,该计划是为在职专业人士创建的,提供 10 多个案例研究和项目、实用的实践研讨会、行业专家的指导、1与行业导师一对一,400 多个小时的学习和顶级公司的工作协助。
Python中的递归是什么?
Python 中的递归意味着遍历数据以达到确定的结果。 这是一个众所周知的数学和编程过程,其中某些东西(语句或函数)是根据自身定义的。 在递归的帮助下,用户或开发人员可以将复杂的代码和函数拆分为更小的子部分,并且创建序列变得更容易访问。 开发人员在使用递归时应格外小心,因为编写一个从不终止或消耗过多内存或 CPU 功率的函数非常频繁。 如果做得正确,递归可能是一种非常有效和数学创新的编程方式。
学习 Python 基础知识需要多少时间?
Python 被认为是最简单的编程语言,因此学习 Python 的基础知识很容易,而且不是很耗时。 学生或专业人士可以花 1-2 个月的时间来学习 Python 的基础知识。 专业人士也可以通过每天投入大约 2-3 小时,在 4-5 个月内掌握所有基本的 Python 函数和库。 掌握 Python 很容易,因为大多数代码的语句较少,并且有更多的预定义函数。
Python中阶乘程序的时间复杂度是多少?
我们从阶乘程序中发现,阶乘(0)只是一次比较(1 个时间单位),阶乘(n)是阶乘(n-1)的一次比较、一次乘法、一次减法和时间。 所以我们可以说 T(n) = T(n - 1) + 3 和 T(0) = 1。把值放入,我们发现 T(N) 与 n 成正比,如 Big-Oh 符号所示。 因此,阶乘程序的时间复杂度为 O(n)。