Antecedentes
El número de Ramanujan, 1729, se llama número de taxi debido a la historia (posiblemente apócrifa) de que Hardy abordaba un taxi para visitar a Ramanujan en el hospital con este número, que le parecía insípido.
Desde entonces es conocido como el más famoso de una clase de enteros conocidos como "números de taxis" que se pueden expresar como la suma de dos enésimas potencias (de enteros positivos) de dos maneras (o a veces 'k') diferentes.
1729 es el número natural más pequeño expresable como la suma de 2 cubos de 2 maneras diferentes, por lo que es el primer número de taxi "3,2" ("n, k" es general).
Desafío
Dado un número, decida si es un "número de taxi secundario" 3,2 ", lo que significa que cumple la misma restricción que 1729 (2 sumas únicas de cubos), pero no tiene que ser el número entero más pequeño del" 3 , Clase de 2 "(eso es 1729, por supuesto).
Casos de ejemplo:
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
Así como 20683, 32832, 39312 ...
Puntuación
Este es el código de golf , por lo que gana la respuesta más corta en cada idioma.
Código áspero de Matlab para encontrar otros casos por fuerza bruta:
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
fuente
Respuestas:
05AB1E , 9 bytes
Código (muy lento)
Código (mucho más rápido), 12 bytes
Utiliza la codificación 05AB1E . Pruébalo en línea!
Explicación
fuente
Jalea , 9 bytes
Créditos a Erik el Outgolfer.
Pruébalo en línea!
Esto es demasiado lento y ni siquiera funcionará en
1729
línea.Mucho más rápido, 12 bytes
Créditos a Dennis.
Pruébalo en línea!
fuente
Ðf⁸
puede llegar a serfR
. El segundo⁸
puede ser eliminado.Œċ*3S€ċ>1
.Mathematica, 35 bytes
Función pura tomando un entero positivo y regresando
True
oFalse
.#^3+#2^3&~Array~{#,#}
tabula todas las sumas de cubos de dos enteros entre 1 y la entrada. (Esto sería mucho más rápido con un límite sensible en los enteros a ser cubicados, como la raíz cúbica de la entrada; pero eso tomaría bytes preciosos. Como es, el código tarda unos 30 segundos en la entrada13832
y escala al menos cuadráticamente en la entrada.)Count[...,#,2]
cuenta cuántas veces aparece la entrada en esta lista en el nivel de nido 2; si este número es mayor que2
, entonces la entrada es un número semi-taxi (mayor que 2, en lugar de mayor que 1, ya que a ^ 3 + b ^ 3 y b ^ 3 + a ^ 3 se cuentan por separado).fuente
Mathematica,
3837 bytes-1 byte gracias a @GregMartin
Como siempre, hay un Mathematica incorporado a todo.
fuente
Tr[1^...]
funciona en lugar deLength@
.JavaScript (ES7), 63 bytes
Una función recursiva relativamente rápida que finalmente devuelve un valor booleano.
Manifestación
Mostrar fragmento de código
fuente
Mathematica, 48 bytes
entrada
salida
fuente
#!=1729&&
ya no es necesario ahora que la especificación se ha aclarado.Solve
lugar deReduce
?Length@Solve[x^3+y^3-#==0<x<y,{x,y},Integers]>1&
que sustituye a la&&
de-
y un poco de reordenar.Python, 71 bytes
Pruébalo en línea
fuente
MATL (
1615 bytes) (1312 idealmente)Pruébalo en línea!
Explicación:
Basado en la solución Jelly de 'Leaky Nun', recién convertida a MATL, probablemente redundante en algunas partes y se puede mejorar:
Nota: las salidas falsas incluyen 0 y -1, mientras que la salida verdadera es 1. Gracias a Luis Mendo por guardar un byte adicional aquí reemplazando "s1>" con "sq".
Idealmente (
1312 bytes):... es suficiente, pero para números más grandes esto se bloquea en la página de tio.run.
fuente
1>
porq
. Además, tienes enH
lugar deG
en la explicación. El hecho de que el programa se bloquee para grandes números generalmente no es relevante para la puntuación. Si funciona con suficiente tiempo y memoria, eso es aceptable, a menos que el desafío especifique lo contrarioRuby , 52 bytes
Pruébalo en línea!
Dado que esta versión crea una masiva n matriz de tamaño 2 , falla en todos los casos de prueba verdaderos superiores a
1729
, aquí hay una versión modificada que tiene un tamaño de matriz más pequeño de aproximadamente n 2/3 , que verifica con éxito al menos hasta 31392.Pruébalo en línea! (modificado)
fuente
PHP , 76 bytes
Pruébalo en línea!
Buscar hasta 400000 ¡Pruébelo en línea!
fuente