Contexte
Le numéro de Ramanujan, 1729, est appelé numéro de taxi en raison de l'histoire (peut-être apocryphe) de Hardy embarquant dans un taxi pour visiter Ramanujan à l'hôpital avec ce numéro, qui lui semblait fade.
Il est depuis connu comme le plus célèbre d'une classe d'entiers connus sous le nom de "nombres de taxis" qui sont exprimables comme la somme de deux nièmes puissances (d'entiers positifs) de deux (ou parfois "k") manières différentes.
1729 est le plus petit nombre naturel exprimable comme la somme de 2 cubes de 2 manières différentes, ce qui en fait le premier nombre de taxis "3,2" ("n, k" étant général).
Défi
Étant donné un nombre, décidez s'il s'agit d'un "3,2" numéro de taxi secondaire "- ce qui signifie qu'il remplit la même contrainte que 1729 (2 sommes uniques de cubes), mais ne doit pas nécessairement être le plus petit entier de ce type" 3 , Classe 2 "(soit 1729, bien sûr).
Exemples de cas:
1729 = 10 ^ 3 + 9 ^ 3 = 12 ^ 3 + 1 ^ 3
4104 = 15 ^ 3 + 9 ^ 3 = 16 ^ 3 + 2 ^ 3
13832 = 2 ^ 3 + 24 ^ 3 = 18 ^ 3 + 20 ^ 3
Ainsi que 20683, 32832, 39312 ...
Notation
C'est le golf de code , donc la réponse la plus courte dans chaque langue l'emporte.
Code Matlab approximatif pour trouver d'autres cas par force brute:
for k = 1729:20000
C = sum(round(mod(real((k-[1:ceil(k^(1/3))].^3).^(1/3)),1)*10000)/10000==1);
if C > 1
D = (mod(C,2)==0)*C/2 + (mod(C,2)==1)*((C+1)/2);
disp([num2str(k),' has ',num2str(D),' solns'])
end
end
la source
Réponses:
05AB1E , 9 octets
Code (très lent)
Code (beaucoup plus rapide), 12 octets
Utilise le encodage 05AB1E . Essayez-le en ligne!
Explication
la source
Gelée , 9 octets
Remerciements à Erik l'Outgolfer.
Essayez-le en ligne!
C'est trop lent pour que cela ne fonctionne même pas pour en
1729
ligne.Beaucoup plus rapide, 12 octets
Crédits à Dennis.
Essayez-le en ligne!
la source
Ðf⁸
peut devenirfR
. Le second⁸
peut être supprimé.Œċ*3S€ċ>1
.Mathematica, 35 octets
Fonction pure prenant un entier positif et retournant
True
ouFalse
.#^3+#2^3&~Array~{#,#}
tabule toutes les sommes de cubes de deux entiers compris entre 1 et l'entrée. (Cela serait beaucoup plus rapide avec une limite sensible sur les entiers à cuber, comme la racine cubique de l'entrée; mais cela prendrait de précieux octets. En l'état, le code prend environ 30 secondes sur l'entrée13832
et évolue au moins quadratique au moins dans l'entrée.)Count[...,#,2]
compte le nombre de fois où l'entrée apparaît dans cette liste au niveau de l'imbrication 2; si ce nombre est supérieur à2
, alors l'entrée est un nombre semi-taxis (supérieur à 2, plutôt que supérieur à 1, car a ^ 3 + b ^ 3 et b ^ 3 + a ^ 3 sont comptés séparément).la source
Mathematica,
3837 octets-1 octet grâce à @GregMartin
Comme toujours, il y a un Mathematica intégré à tout.
la source
Tr[1^...]
fonctionne à la place deLength@
.JavaScript (ES7), 63 octets
Une fonction récursive relativement rapide qui retourne finalement un booléen.
Démo
Afficher l'extrait de code
la source
Mathematica, 48 octets
contribution
production
la source
#!=1729&&
n'est plus nécessaire maintenant que la spécification a été clarifiée.Solve
plutôt queReduce
?Length@Solve[x^3+y^3-#==0<x<y,{x,y},Integers]>1&
lequel remplace le&&
avec-
et un peu de réarrangement.Python, 71 octets
Essayez-le en ligne
la source
MATL (
1615 octets) (1312 idéalement)Essayez-le en ligne!
Explication:
Basé sur la solution Jelly de 'Leaky Nun', qui vient d'être convertie en MATL, probablement redondante dans certaines parties et peut être améliorée:
Remarque: les sorties falsifiées incluent 0 et -1, tandis que la sortie véridique est 1. Merci à Luis Mendo d'avoir enregistré un octet supplémentaire en remplaçant ici "s1>" par "sq".
Idéalement (
1312 octets):... est suffisant, mais pour un plus grand nombre, cela se bloque sur la page de tio.run.
la source
1>
parq
. En outre, vous avezH
au lieu deG
dans l'explication. Le fait que le programme plante pour de grands nombres n'est généralement pas pertinent pour la notation. Si cela fonctionne avec suffisamment de temps et de mémoire, c'est acceptable, sauf indication contraire du défiRubis , 52 octets
Essayez-le en ligne!
Étant donné que cette version crée un tableau massif de taille n 2 , elle échoue sur tous les vrais tests supérieurs à
1729
, voici une version modifiée qui a une taille de tableau plus petite d'environ n 2/3 , qui vérifie avec succès au moins jusqu'à 31392.Essayez-le en ligne! (modifié)
la source
PHP , 76 octets
Essayez-le en ligne!
Rechercher jusqu'à 400000 Essayez-le en ligne!
la source