Calculez le rapport de la somme des cubes des premiers «n» nombres naturels à la somme des carrés des premiers «n» nombres naturels.

Code:

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

Sortie de la solution:

62.96363636363636

Production attendue:

7.857142857142857
-4
Pradeep v 9 mars 2019 à 11:16

2 réponses

Meilleure réponse
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))
0
Justice_Lords 9 mars 2019 à 19:20

Votre code est très difficile à comprendre et ne s'exécute même pas.

Sur la base de votre description de l'objectif, je peux suggérer un code plus simple pour y parvenir:

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

Cela donnerait ces résultats:

>>> 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
0
Ralf 9 mars 2019 à 11:23