La quatrième racine de (12) ou un autre numéro en Python 3
Je suis en train de faire un code simple pour une puissance de 12 à 4(12 ** 4) .
J'ai la sortie num (20736) mais quand je veux la figure renvoie (20736) à sa valeur d'origine (12). Je ne sais pas comment le faire en Python ..
dans la Vraie mathématiques-je le faire par la formule mathématique {12؇}
La question est de savoir comment faire {12؇} en Python ??
Je suis en utilisant sqrt (), mais sqrt seulement pour une puissance de 2
#!/usr/bin/env python3.3
import math
def pwo():
f=12 ** 4 #f =20736 #
c= # should c = 12 #
return f,c
print pwo()
20736 ** 0.25
peut-être un peu hors, ou exact, je ne sais pas pour sûr. Le n
-racine-ième de x
est x^(1/n)
, donc 20736 ** (1.0/4)
.Astuce:
n^(1/4) = (n^(1/2))^(1/2)
. Ou utiliser n ** 0.25
.En mathématiques,
12؇4
est le 12ème de la racine de 4, pas la 4ème de la racine de 12. En d'autres termes, c'est l'inverse de 4 ** 12
, pas l'inverse de 12 ** 4
. Que l'on ne vous fait envie?Et si vous voulez qu'il exact, pour un nombre donné de chiffres après la virgule, il suffit d'utiliser
20736 ** decimal.Decimal(1)/4
à la place.est le 4ème de la racine de 12 ; 12*12*12*12=20736 :(20736؇4=12)
OriginalL'auteur Mr Sam | 2013-07-11
Vous devez vous connecter pour publier un commentaire.
À des fins scientifiques (où vous avez besoin d'un haut niveau de précision), vous pouvez utiliser numpy:
La sortie peut sembler étrange, mais il peut être utilisé comme vous le feriez utiliser une liste. En outre, la fonction ci-dessus vous permettra de trouver toutes les racines de n'importe quel nombre (j'ai mis la valeur par défaut pour la r égale à 4 depuis que vous avez demandé pour la quatrième racine en particulier). Enfin, numpy est un bon choix, car il sera de retour le nombres complexes qui saura satisfaire vos équations.
Donc, il semble que cela ne peut pas être tout à fait aussi précis qu'un simple Python méthode pour trouver le premier non-imaginaire racine positive dans certains cas. E. g.: (Désolé, oneliners...)
import numpy as np
,numpy_root = lambda n, r: float(np.real(filter(lambda n: np.imag(n) == 0 and n > 0, np.roots(np.double([1]+[0]*(r-1)+[-n])))[0]))
,py_root = lambda n, r: float(n)**(1.0/float(r))
. Sur ma boîte,numpy_root(2, 12) == 1.0594630943592955
, maispy_root(2, 12) == 1.0594630943592953
, ce qui est mieux selon komsta.net/digits/12roots . Suis-je en train de faire quelque chose de mauvais? Serait un autre numpy API être mieux...?OriginalL'auteur iCodez
ou
Pour une référence future: racine Carrée: num ** (1 / 2) Racine cubique: num ** (1 / 3) racine nième: num ** (1 / n)
OriginalL'auteur enderx1x