我想在python中用符号代数计算阶乘和。我可以生成的问题的最简单版本是:
from sympy.abc import j
from math import factorial
from sympy import summation
summation(factorial(j), (j, 1, 4))
我得到了以下错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "sympy/core/expr.py", line 194
int main()
{
int n, i, sum;
cout << "Enter a value for n: ";
cin >> n;
sum = 0;
i = 1;
do
{
sum += i * i;
i++;
}while (i <= n);
cout << "The sum of the first " << n
<< " numbers is " << sum << endl;
return 0;
我曾经问过一个类似的问题,但这个问题有点不同。以下是我的锻炼。我得到的答案与我通过使用python的内置函数得到的答案不一致。请告诉我做错了什么,我相信内置函数的答案必须是正确的。
我的锻炼:
def fact_cum(n):
f = 1
for x in range(1, n +1):
f *= x
print f
fact_cum(1000)
Python的内置函数:
import math
def cumFact():
x = sum(math.factorial(f) for f in range(1000))
print
我的程序首先找到n个表单用户输入的阶乘。然后,我使用它并执行1/n来查找该位置中的术语。然后,我需要将前面的所有项相加,以求出该项在级数中的近似值。
它打印出系列中正确的第n项,但当我把它们加在一起时,它们总是错误的。
下面是我的程序的代码:
import java.util.*;
public class Lab01b {
public static void main(String[]args){
Scanner scan = new Scanner(System.in); // Creates a Scanner object to get input from th
(坦白地说,我正在CodeAcademy上学习Python教程,并且正在使用他们基于web的IDE。)
def factorial(x):
bang = 1
for num in x:
bang = bang * num
return bang
在java中,这可以从小于2,147,483,647的数字生成阶乘。我认为它应该在python中工作,但是它不工作。相反,我得到了错误:
追踪(最近一次调用):文件"python",第3行,在阶乘TypeError:'int‘对象是不可迭代的
也许这里有我不理解的地方,或者
我试图在python中复制一些C代码。
这是C代码。
#include <math.h>
double AttackerSuccessProbability(double q, int z)
{
double p = 1.0 - q;
double lambda = z * (q / p);
double sum = 1.0;
int i, k;
for (k = 0; k <= z; k++)
{
double poisson = exp(-lambda);
for (i = 1; i <= k; i++)
poisson *= lambd
def factorial(n):
if n == 0:
return 1
else:
return n * factorial (n-1)
def sum_even_factorials(n):
if n == 0:
return 1
elif n % 2 == 0 and n>=0:
total = 0
return total + sum(factorial(n))
今天类中关于递归和堆栈溢出的话题很有趣,我想知道是否有任何方法可以增加Python中的最大递归深度?写了一个使用递归找到n的阶乘的快速函数:
def factorial(n):
if n == 1:
return n
else:
return n * factorial(n-1)
它可以处理阶乘(994),但不能处理阶乘(995)。给出的错误是:
RuntimeError: maximum recursion depth exceeded in comparison
显然,可以迭代地找到更高的阶乘,但是,为了论证和阴谋,最大递归深度是否可以增加?
我刚刚开始学习python,并编写了一个程序,它根据阶乘计算阶乘数。
例如,如果我给程序一个数字120,它会告诉我它的阶乘是5
无论如何,我的问题是如何让这段代码更高效、更快。
Num = int(input())
i=0
for i in range(0,Num):
i = i + 1
x = Num/i
Num = x
if (x==1):
print(i)
下面的Python代码定义了一个记录器和一个阶乘函数,然后用关键字参数调用阶乘函数:
def logger(f):
def f_(a):
print("Call", a)
return f(a)
return f_
# @logger # uncomment this line to see the problem
def factorial(n):
return 1 if n == 0 else n * factorial(n-1)
print(factorial(n=5))
结果产生以下输出(如预期的):120。
现在,如果我取消对记录器装饰
我是Python的新手,目前正在阅读Python 3,面向绝对初学者,并面临以下问题。
我想用程序计算阶乘。
请求用户输入非负数n
然后使用for循环计算阶乘。
守则是这样的:
N = input("Please input factorial you would like to calculate: ")
ans = 1
for i in range(1,N+1,1):
ans = ans*i
print(ans)
虽然我想增加一个功能,以检查输入数字N是否为非负数。像这样:
if N != int(N) and N < 0:
如果不是非负数,我
我正在尝试理解以下Python函数:
def factorial(i):
if not hasattr(factorial, 'lstFactorial'):
factorial.lstFactorial = [None] * 1000
if factorial.lstFactorial[i] is None:
iProduct = 1
for iFactor in xrange(1, i+1):
iProduct *= iFactor
factorial.lstFactor
我刚刚开始学习Python。我必须使用Python3.7。有没有人可以给我看一个有效的阶乘代码?我尝试了一些我在这里找到的,但我总是得到这样的错误:
=================== RESTART: C:\programozás\pytutorial.py ===================
代码:
def factorial(n):
result = 1
for i in range(1, n + 1):
result *= i
return result
我试图使用一个代码来寻找Wilson Primes的一些乐趣,并使我回到编码的摇摆,然而,我发现当我试图除以172!+1乘以173,它会给我一个溢出错误。下面是我使用的代码:
import math
x = 2
while x < 1000:
if math.factorial(x-1) + 1 % x == 0 and (math.factorial(x-1) + 1 / 5) % x == 0 :
print(x)
x += 1
我跑步的时候给了我:
5
13
OverflowError:整数除法结果对于浮点数来说太大了
我更改了代码,发现一旦
我尝试在python中计算泊松分布,如下所示:
p = math.pow(3,idx)
depart = math.exp(-3) * p
depart = depart / math.factorial(idx)
idx范围为0
但是我有OverflowError: long int too large to convert to float
我尝试将depart转换为float,但没有结果。
首先,我必须为我糟糕的英语说声对不起,但我尽力了。
我有一个关于在python中使用递归和异常来比较计算阶乘的速度的练习。
我写了一个代码:
class MyException(Exception):
def __init__(self, value):
self.value = value
def standardFactorial(n):
if n == 1:
return 1
return n * standardFactorial(n-1)
def factorialWithExceptions(n):
if n ==
我试图在渐近上添加两个泊松随机变量。但我的计算没有反应。
有什么可以回答的吗?
import sympy as sp
import sympy.stats as ss
x= ss.Poisson("x", 3)
y = ss.Poisson("y", 6)
mixed = x+y
d = ss.density(mixed)
print(sp.N(d(0)))
晚上,
我是python的入门学生,遇到了一些麻烦。我正在尝试制作一个python factorial程序。它应该提示用户输入n,然后计算n的阶乘,除非用户输入-1。我被卡住了,教授建议我们使用while循环。我知道我甚至还没说到“if-1”这个问题。我不知道如何让python在不使用math.factorial函数的情况下计算阶乘。
import math
num = 1
n = int(input("Enter n: "))
while n >= 1:
num *= n
print(num)
这是一个问题:编写一段python代码来查找所有小于50,000的整数,这些整数等于它们的数字的阶乘和。例如:数字7666 6= 7!+ 6!+ 6!+ 6!但是145=1!+4!+5!
注意:我不允许使用任何特定的阶乘函数。
我的解决方案是:
import math
from numpy import *
for i in range(5):
for j in range(10):
for k in range(10):
for l in range(10):
for m in range(10):
我正在研究阶乘的速度。但我只用了两种方法
import timeit
def fact(N):
B = N
while N > 1:
B = B * (N-1)
N = N-1
return B
def fact1(N):
B = 1
for i in range(1, N+1):
B = B * i
return B
print timeit.timeit('fact(5)', setup="from __main__ import fact"), f