J'ai écrit ce code python, qui de wolfram alpha dit qu'il est censé retourner le factoriel de toute valeur positive (j'ai probablement foiré quelque part), entier ou non:comment quitter la formule mathématique récursive et toujours obtenir une réponse
from math import *
def double_factorial(n):
if int(n) == n:
n = int(n)
if [0,1].__contains__(n):
return 1
a = (n&1) + 2
b = 1
while a<=n:
b*=a
a+= 2
return float(b)
else:
return factorials(n/2) * 2**(n/2) *(pi/2)**(.25 *(-1+cos(n * pi)))
def factorials(n):
return pi**(.5 * sin(n*pi)**2) * 2**(-n + .25 * (-1 + cos(2*n*pi))) * double_factorial(2*n)
le problème est, dire que je entrée pi à 6 décimales. 2 * n ne deviendra pas un flotteur avec 0 comme décimales dans un proche avenir, de sorte que l'équation se révèle être
pi**(.5 * sin(n*pi)**2) * 2**(-n + .25 * (-1 + cos(2*n*pi))) * double_factorial(loop(loop(loop(...)))))
comment pourrais-je arrêter la récursivité et toujours obtenir la réponse? Ive avait des suggestions pour ajouter un index aux définitions ou quelque chose, mais le problème est que si le code s'arrête quand il atteint un index, il n'y a toujours pas de réponse à remettre dans les "nids" précédents ou quoi que vous appeliez les
peut-être fournir un lien vers la page Alpha Wolfram vous faites référence? –
suffit d'aller à wolframalpha.com et tapez, disons, pi! et il vous donnera 7,1880827289760327020821943451247587185593017639684371624100 ... – calccrypto