python中阶乘是什么意思,求阶乘的和Python
大蟒中阶乘怎么表示
我目前正在写一篇关于使用泰勒多项式计算正弦和余弦的文章。这些方法大量使用阶乘,所以我开始考虑简化这个过程的方法。
我目前正在撰写一篇有关使用灵巧的银耳汤多项式计算正弦和余弦的文章。这些大量使用阶乘,因此我开始考虑简化流程的方法。
本文描述了一个简单的项目,它使用带有查找表的记忆来预先计算阶乘,并存储它们以备将来使用。
本文介绍了一个简单的项目,该项目使用带有查找表的备注来预先计算析因并将其存储以备将来使用。
许多算法和其他过程大量重复使用需要计算的值,通常在内存和/或时间方面很昂贵。因此,开发某种机制是有意义的,通过这种机制,经常需要或可能需要的值只计算一次。
许多算法和其他过程经常以在存储器和/或时间方面昂贵的方式大量重复使用需要计算的值。因此,开发某种机制是有意义的,通过这种机制,经常或可能经常需要的值仅计算一次。
上面提到的在计算三角函数中使用阶乘就是一个例子。在以后的文章中,我将把这个原理扩展到计算和存储正弦和余弦本身,当然还有许多其他常见的例子。
在上述三角函数的计算中使用阶乘是一个示例。在以后的文章中,我将把原理扩展到计算和存储正弦和余弦本身,但是当然还有许多其他常见示例。
当考虑阶乘时,使用查找表的记忆的大致轮廓是简单而明显的:只需使用一个整数列表,其最高索引是我们想要的阶乘的最高数字。因此,给定数字的阶乘是使用该数字作为数组的索引来设置和检索的。
在考虑阶乘时,使用查找表进行记忆的大致轮廓很简单明了:只需使用整数列表,其最高索引就是我们想要阶乘的最高数字。因此,使用该数字作为数组的索引来设置和检索给定数字的阶乘。
我们要编写什么代码?(我们要编码什么?)这个项目包含一个小类,实现阶乘的记忆,直到给定的最大值。阶乘在__init__中计算并存储在一个列表中。还有一种方法可以得到单个阶乘。
该项目由一个小类组成,该类实现对阶乘的记忆直至给定的最大值。阶乘在__init__中计算并存储在列表中。还有一种获取单个阶乘的方法。
该项目由以下文件组成:
该项目包含以下文件:
factorialsmemoization.py析因记忆化main.py
main.py
您可以从开源代码库库克隆/下载这些。
您可以从开源代码库仓库克隆/下载这些。
先看factorialsmemoization.py。
首先让我们看一下factorialsmemoization.py。
导入数学类阶乘备注化(对象): 备注化整数的阶乘,最大为初始化的n个参数。提供得到方法以检索记忆阶乘 def __init__(self,n): 在列表中存储从0到n的数字的阶乘‘’自我。阶乘=[]自身。memo ized _ to=n prev=1 # 0!=1(是啊,真的)self.factorials.append(1) #乘以前一个阶乘比单独计算范围(1,^北部1)中我的每个阶乘要有效得多#自我。阶乘。append(I * prev)prev=self阶乘[I]def get(self,n): 从列表中返回阶乘,如果超出内存化范围,则引发值错误.如果(n 0或自我。memoized _ to):提高值错误(请求的阶乘超出了备忘录化范围)else:回归自我。阶乘[n]_ _ init _ _方法将计算阶乘的最大数字作为参数。然后我们创建一个空列表,将最大值存储在self . memorized _ to中,并将名为上一个的变量初始化为1;它的目的很快就会变得清晰。
__init__方法将要计算其阶乘的最大数量作为参数。然后,我们创建一个空列表,将最大值存储在self.memoized_to,并将名为上一个的变量初始化为1;稍后它的目的将变得很清楚。
然后,在进入循环计算其余部分之前,我们将0的阶乘一追加到列表中。注意,这个循环从一开始,因为我们已经设置了0。在循环中,我们将下一个阶乘设置为前一个阶乘乘以当前数,因此一开始将上一个设置为1。然后,我们将上一个设置为当前阶乘。
然后,我们在进入循环以计算余数之前将0的阶乘0(即1)添加到列表中。请注意,此循环从一开始,因为我们已经设置了0。在循环中,我们将下一个阶乘乘以当前数,再乘以当前数字,因此将上一个设置为1。然后,将上一个设置为当前的阶乘。
最后,我们有得到方法,它检查请求的阶乘是否超出范围,如果超出,就抛出一个异常。如果n有效,它将从列表中返回相关的值。
最后,我们有了得到方法,该方法检查所请求的阶乘是否超出范围,如果是,则引发异常。如果n有效,则从列表中返回相关值。
factorialmemoization.py已完成,因此我们可以继续学习main.py。
那已经完成了factorialmemoization.py,所以我们可以继续进行main.py了。
import factorial memoizationdef main(): 演示阶乘记忆类 print(-)print( codedrome.com )print( 阶乘的记忆 )打印(- \n) fm=阶乘记忆阶乘备忘录化(8)try:# test xdhk备忘录化范围以演示范围(0,10)中n的异常:打印( {:d}: .format(n),end=) print({:d} .format(fm.get(n))) #如果我们调用超出记忆范围,它将引发数值误差(数值误差除外)作为e: print(e)main()导入上面创建的模块后,我们进入主要的函数,该函数首先创建阶乘记忆化类的一个实例,其中n设置为8。然后我们进入一个循环,打印出0到10的阶乘——我故意超出这个范围来演示异常处理。
导入上面创建的模块后,我们进入主要的函数,该函数首先创建n设置为8的阶乘记忆化类的实例。然后进入循环以打印出0到10的阶乘-我故意超范围以演示异常处理。
在终端中运行以下程序…
在终端中运行以下程序……
python3.8 main.py
python3.8 main.py
…这将为您提供以下输出。
…这将为您提供以下输出。
正如你所看到的,我们得到了正确的阶乘8,但随后遇到了一个异常9,这是xxdhk的计算范围。
如您所见,我们得到了最多8个正确的阶乘,但是又遇到了超出计算范围的9异常。
翻译自:https://中等。com/python-in-plain-English/memo ization-of-factorials-in-python-Fe 27710 ce 85b
大蟒中阶乘怎么表示
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。