计算第一个“ n”个自然数的立方和与第一个“ n”个自然数的平方和之比

时间:2019-03-09 08:16:07

标签: python python-3.x

计算第一个“ n”个自然数的立方和与第一个“ n”个自然数的平方和之比。

代码:

input_int=[x for x in range (1,input_int+1)]
python=reduce(lambda x,y:x+y **3/sum(input_int) % x +y**2/sum(input_int),input_int)
x=10

解决方案输出:

62.96363636363636

预期输出:

7.857142857142857

3 个答案:

答案 0 :(得分:0)

您的代码很难理解,甚至无法运行。

根据您对目标的描述,我可以建议一个更简单的代码来实现它:

def calc_ratio(n):
    sum_3 = sum(x**3 for x in range(1, n+1))
    sum_2 = sum(x**2 for x in range(1, n+1))
    return sum_3 / sum_2

这将产生以下结果:

>>> calc_ratio(10)
7.857142857142857
>>> calc_ratio(100)
75.3731343283582
>>> calc_ratio(1000)
750.3748125937032
>>> calc_ratio(10000)
7500.374981250938
>>> calc_ratio(100000)
75000.37499812501

答案 1 :(得分:0)

from functools import reduce
import ast,sys
input_int = int(sys.stdin.read())

num_list = [x for x in range(1, input_int+1)]
print(reduce(lambda x, y : x + y ** 3, num_list) / reduce(lambda x, y : x + y ** ,num_list))

答案 2 :(得分:0)

试试下面的代码:

from functools import reduce
import ast,sys
input_int = int(sys.stdin.read())
num_list = [x for x in range(1, input_int+1)]
print(reduce(lambda x, y : x + y ** 3, num_list) / reduce(lambda x, y : x + y **2 ,num_list))