广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python怎么实现数学阶乘n!
  • 703
分享到

Python怎么实现数学阶乘n!

2023-07-05 13:07:26 703人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍了python怎么实现数学阶乘n!的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python怎么实现数学阶乘n!文章都会有所收获,下面我们一起来看看吧。python实现阶乘-基础版本什么是阶乘呢

这篇文章主要介绍了python怎么实现数学阶乘n!的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python怎么实现数学阶乘n!文章都会有所收获,下面我们一起来看看吧。

python实现阶乘-基础版本

什么是阶乘呢

在数学运算中n!表示n的阶乘,用数学公式表示为:

n!=1*2*3*....*(n-1)*n

下面提供了一个例子:比如5的阶乘

# 正确的结果1*2*3*4*5

正确结果为:120

小编给大家提供3种不同的方法来实现阶乘运算:

  • 基于for运算的累乘

  • 基于递归函数实现

  • 基于第三方库functools的reduce函数实现

方式1-累乘

result = 1  # 给定一个初始值n = 5for i in range(1, n+1):    print("累乘前result: ", result)    print("循环数i的值: ", i)    result = result * i  # 不断地累成result    print("累乘后result: ", result)    print("------------")result

累乘前result:  1
循环数i的值:  1
累乘后result:  1
------------
累乘前result:  1
循环数i的值:  2
累乘后result:  2
------------
累乘前result:  2
循环数i的值:  3
累乘后result:  6
------------
累乘前result:  6
循环数i的值:  4
累乘后result:  24
------------
累乘前result:  24
循环数i的值:  5
累乘后result:  120
------------

结果是:120

方式2-使用递归函数

def recursion(n):    if n == 0 or n == 1:  # 特殊情况        return 1    else:        return n * recursion(n-1)  # 递归函数
recursion(5)

120

方式3-第三方库functools的reduce函数

# 在python3中reduce函数被移入到functools中;不再是内置函数from functools import reduce n = 5reduce(lambda x,y: x*y, range(1,n+1))

120

reduce函数的用法解释:

reduce(function, iterable[, initializer])
  • 需要给定一个待执行的函数function(上面是匿名函数;或者自定义函数)

  • 给定一个可迭代对象iterable

  • 可选的初始值initializer

# 使用自定义函数from functools import reduce number = range(1,6)# number = [1,2,3,4,5]def add(x,y):    return x+yreduce(add, number)  # 1+2+3+4+5

15

# 使用匿名函数from functools import reduce number = range(1,6)reduce(lambda x,y: x+y, number)  # 1+2+3+4+5

15

python实现阶乘累加求和-进阶版

下面是一个进阶的需求:如何实现阶乘的累加求和?

# 求出下面的阶乘的累加求和1 + 1*2 + 1*2*3 + 1*2*3*4 + 1*2*3*4*5

正确结果是153

方式1-累乘+sum

# 定义累乘函数def func(n):    result = 1        for i in range(1, n+1):        result = result * i  # 不断地累成re              return result    func(5)  # 测试案例

120

上面是我们实现的单个数字的阶乘,放入for循环即可求累计求和:

# func(1) + func(2) + func(3) +  func(4) + func(5)# 调用累乘函数sum(func(i)  for i in range(1,6))

153

方式2-累乘+递归

在一个函数中同时使用累乘和递归函数

# 定义累乘函数def func(n):    result = 1  # 定义初始值        for i in range(1, n+1):        result = result * i  # 不断地累成re        # if result == 1 :  等价于下面的条件    if n==0 or n==1:        return 1    else:  # 下面是关键代码        return result + func(n-1)  #在这里实现递归 func(n-1)    func(5)

153

方式3-递归+sum

def recursion(n):    """    之前定义的递归函数    """    if n == 0 or n == 1:        return 1    else:        return n * recursion(n-1)

调用递归函数在基于for循环和sum求和

# recursion(1) + recursion(2) + recursion(3) +  recursion(4) + recursion(5)# 调用定义的递归函数sum(recursion(i)  for i in range(1,6))

153

方式4-reduce 结合 sum

from functools import reduce n = 5reduce(lambda x,y: x*y, range(1,n+1))

120

单次调用reduce函数,结合for循环和sum求和

sum(reduce(lambda x,y: x*y, range(1,n+1)) for n in range(1,6))

153

方式5-两次reduce函数

[reduce(lambda x,y: x*y, range(1,n+1)) for n in range(1,6)]

[1, 2, 6, 24, 120]

将上面的结果作为可迭代的列表再次传入reduce函数,此时的执行函数是两个元素的求和(x+y):

reduce(lambda x,y:x+y, [reduce(lambda x,y: x*y, range(1,n+1)) for n in range(1,6)] )

153

Python怎么实现数学阶乘n!

关于“Python怎么实现数学阶乘n!”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Python怎么实现数学阶乘n!”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网Python频道。

--结束END--

本文标题: Python怎么实现数学阶乘n!

本文链接: https://www.lsjlt.com/news/351805.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python怎么实现数学阶乘n!
    这篇文章主要介绍了Python怎么实现数学阶乘n!的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python怎么实现数学阶乘n!文章都会有所收获,下面我们一起来看看吧。python实现阶乘-基础版本什么是阶乘呢...
    99+
    2023-07-05
  • 详解Python如何巧妙实现数学阶乘n!
    目录python实现阶乘-基础版本方式1-累乘方式2-使用递归函数方式3-第三方库functools的reduce函数python实现阶乘累加求和-进阶版方式1-累乘+sum方式2-...
    99+
    2023-03-19
    Python计算数学阶乘n! Python数学阶乘n! Python阶乘
  • python怎么求N的阶乘
    今天小编给大家分享一下python怎么求N的阶乘的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。求N的阶乘本题要求编写程序,计...
    99+
    2023-06-30
  • 怎么使用javascript实现n的阶乘
    这篇文章主要介绍“怎么使用javascript实现n的阶乘”,在日常操作中,相信很多人在怎么使用javascript实现n的阶乘问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2022-10-19
  • php怎么用循环实现n的阶乘
    php用循环实现n的阶乘的方法:1、新建一个php示例文件;2、添加php的界定符;3、声明PHP与浏览器交互的文件类型和编码;4、定义一个函数compute(),并且添加参数$num;5、使用for语句计算参数$num的阶乘;6、使用re...
    99+
    2023-05-14
    阶乘 循环 php
  • Python 怎么定义计算N的阶乘的函数
    定义计算N的阶乘的函数 1)使用循环计算阶乘 def frac(n): r = 1 if n<=1: if n==0 or n==1: retu...
    99+
    2022-11-11
  • 怎么使用python递归算法求n的阶乘
    你可以使用下面的代码来使用递归算法求n的阶乘:```pythondef factorial(n):if n == 0 or n ==...
    99+
    2023-08-09
    python
  • python中怎么使用递归法求n的阶乘
    在Python中,可以使用递归方法来计算n的阶乘。递归是指函数调用自身的过程。下面是一个使用递归法计算n的阶乘的示例代码:```py...
    99+
    2023-09-15
    python
  • php怎么实现阶乘算法
    实现步骤:1、定义一个变量并赋值1,用于储存阶乘结果,语法“$cj=1;”;2、使用for语句循环遍历“1~n”范围的数,求n的阶乘,语法“for ($i = 1; $i <= $n; $i++) {//循环体代码}”;3、在循环体中...
    99+
    2022-08-11
    php
  • python怎么求出输入数的阶乘
    这篇文章主要介绍了python怎么求出输入数的阶乘,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。python求出输入数阶乘的方法:首先定义一个【factorial()】函数,...
    99+
    2023-06-08
  • python计算数字或者数组的阶乘的实现
    今天写毕业设计的时候遇到了一个级数展开式,里面包含着一个求一个数组的阶乘运算,这里特来记录一下。 # -*- coding:utf-8 -*- """ author: 15025 time: 2021/7/18 ...
    99+
    2022-06-02
    python数组阶乘 python 阶乘
  • python怎么计算数字或者数组的阶乘
    这篇文章主要介绍“python怎么计算数字或者数组的阶乘”,在日常操作中,相信很多人在python怎么计算数字或者数组的阶乘问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python怎么计算数字或者数组的阶乘...
    99+
    2023-06-20
  • python计算阶乘的两个函数怎么用
    本篇内容主要讲解“python计算阶乘的两个函数怎么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python计算阶乘的两个函数怎么用”吧!计算阶乘的两个函数用法1.reduce()#从fun...
    99+
    2023-06-30
  • c# 中怎么实现一个阶乘递归算法
    c# 中怎么实现一个阶乘递归算法,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。using System;using System.Collections...
    99+
    2023-06-03
  • python怎么用lambda函数实现两个数相乘
    这篇文章给大家分享的是有关python怎么用lambda函数实现两个数相乘的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。用lambda函数实现两个数相乘python的数据类型有哪...
    99+
    2022-10-19
  • pytorch中矩阵乘法和数组乘法怎么实现
    本篇内容介绍了“pytorch中矩阵乘法和数组乘法怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、torch.mul该乘法可简单理...
    99+
    2023-07-05
  • 怎么用python实现九九乘法表
    这篇文章主要介绍怎么用python实现九九乘法表,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!首先,我们来回忆一下99乘法表长什么样子吧进入正题:实现99乘法表你能学到for 循环range函数format 格式字符...
    99+
    2023-06-26
  • php怎么实现两个数相乘
    这篇文章主要介绍“php怎么实现两个数相乘”,在日常操作中,相信很多人在php怎么实现两个数相乘问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php怎么实现两个数相乘”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-07-05
  • Python怎么调用实现最小二乘法
    所谓线性最小二乘法,可以理解为是解方程的延续,区别在于,当未知量远小于方程数的时候,将得到一个无解的问题。最小二乘法的实质,是保证误差最小的情况下对未知数进行赋值。最小二乘法是非常经典的算法,而且这个名字我们在高中的时候就已经接触了,属于极...
    99+
    2023-05-19
    Python
  • python中怎么实现打印乘法口诀
    python中怎么实现打印乘法口诀,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。import sysfor i in range(1...
    99+
    2023-06-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作