S. Ryley a prouvé le théorème suivant en 1825:
Chaque nombre rationnel peut être exprimé comme une somme de trois cubes rationnels.
Défi
Étant donné un nombre rationnel trouver trois nombres rationnels tels que
Détails
Votre soumission devrait être en mesure de calculer une solution pour chaque entrée avec suffisamment de temps et de mémoire, ce qui signifie que, par exemple, deux 32 bits int
représentant une fraction ne suffisent pas.
[p1,p2,p3,q]
, interprété comme ?Réponses:
Pari / GP , 40 octets
Essayez-le en ligne!
La même longueur, la même formule:
Essayez-le en ligne!
Cette formule est donnée dans: Richmond, H. (1930). Sur les solutions rationnelles dex3+y3+z3=R . Actes de la Edinburgh Mathematical Society, 2(2), 92-100.
Vérifiez-le en ligne!
la source
Haskell ,
9589766968 octetsEssayez-le en ligne!
Solution bruteforce simple. Il teste tous les triplets de nombres rationnels de la forme(a1n,a2n,a3n)with −n≤ain≤n.
la source
[-n,1/n-n..n]
Husk , 14 octets
Solution simple de force brute. Essayez-le en ligne!
Explication
La division dans Husk utilise des nombres rationnels par défaut et les produits cartésiens fonctionnent correctement pour des listes infinies, ce qui en fait un programme très simple.
la source
JavaScript (Node.js) , 73 octets
Prend l'entrée commep et q sont des littéraux BigInt.
(p)(q)
, oùRenvoiepq= ( p1q1)3+ ( p2q2)3+ ( p3q3)3 .
[[p1,q1],[p2,q2],[p3,q3]]
tel queEssayez-le en ligne!
Dérivé de HW Richmond (1930), A Solutions rationnelle de x 3 + y 3 + z 3 = R .
la source
Haskell , 70 octets
Dans une introduction à la théorie des nombres (par Hardy et Wright), il y a une construction qui inclut même un paramètre rationnel. À des fins de golf, je viens de définir ce paramètre sur 1 et j'ai essayé de réduire autant que possible. Il en résulte la formule
Essayez-le en ligne!
la source
perl -Mbigrat -nE, 85 octets
Vous pouvez enregistrer 8 octets (le début
$_=eval;
) si vous savez que l'entrée est un entier; cette partie est nécessaire pour que le programme saisisse une entrée du formulaire308/1728
. L'entrée est lue depuis STDIN. J'utilise la formule donnée par @alephalpha.la source