Un número biquadratico es un número que es la cuarta potencia de otro número entero, por ejemplo: 3^4 = 3*3*3*3 = 81
Dado un entero como entrada, genera el número biquadratico más cercano.
Aquí están los primeros 15 cuadrados dobles:
1, 16, 81, 256, 625, 1296, 2401, 4096, 6561, 10000, 14641, 20736, 28561, 38416, 50625
Este es el código de golf, por lo que gana menos bytes en cada idioma
Esto es OEIS A000583
code-golf
sequence
number-theory
integer
Skidsdev
fuente
fuente
n^4
yn
alterna en signo.2 x n²
números: 2, 8, 18, 32, 50, 72, 98, ...Respuestas:
Python 3 , 35 bytes
Pruébalo en línea!
Cómo funciona
El valor n al cual la salida cambia de ( k - 1) 4 a k 4 satisface √ (√n - 3/4) + 1/2 = k , o n = ((k - 1/2) 2 + 3 / 4) 2 = ( k 2 - k + 1) 2 = (( k - 1) 4 + k 4 + 1) / 2, que es exactamente el primer entero más cercano a k 4 .
(Funciona para todos n ≤ 4504699340341245 = (8192 4 + 8193 4 - 7) / 2> 2 52 , después de lo cual el redondeo de punto flotante comienza a romperlo, a pesar de que funciona matemáticamente para todos los n .)
fuente
round
si cambia a Python 2 que redondea todos los .5.Octava , 35 bytes
Este desafío necesitaba un enfoque basado en la convolución.
Pruébalo en línea!
Explicación
La expresión
(1:n).^4
produce el vector fila[1 16 81 256 ... n^4]
.Este vector se convoluciona con
[1 1]/2
, lo que es equivalente a calcular el promedio deslizante de bloques de tamaño2
. Esto supone implícitamente que el vector está rellenado con izquierda y derecha0
. Entonces, el primer valor en el resultado es0.5
(promedio de un implícito0
y1
), el segundo es8.5
(promedio de1
y16
), etc.Como ejemplo, para
n = 9
el resultado deconv((1:n).^4,[1 1]/2)
esLa comparación
n>...
entonces producey aplicando
sum(...)
da2
. Esto significa quen
excede exactamente2
de los puntos medios entre los números biquadráticos (incluido el punto medio adicional0.5
). Finalmente,^4
plantea esto4
para producir el resultado16
,.fuente
Haskell ,
5149 bytesFunción mónada ftw!
Pruébalo en línea!
Explicación:
fuente
MATL , 6 bytes
Pruébalo en línea!
Explicación
Considere la entrada
9
como un ejemplo.fuente
Neim , 5 bytes
Explicación:
Pruébalo en línea!
fuente
Excel, 25 bytes
Excel actualiza esto a
=INT((A1^0.5-3/4)^0.5+0.5)^4
fuente
Excel.ActiveSheet
objeto las toman de la celdaA1
Mathematica, 21 bytes
fuente
Brachylog , 9 bytes
Pruébalo en línea!
Explicación
fuente
JavaScript (ES7), 42 bytes
Versión recursiva, 44 bytes.
Manifestación
Mostrar fragmento de código
fuente
Octava , 37 bytes
Función anónima que utiliza la interpolación del vecino más cercano.
Pruébalo en línea!
fuente
conv
:(05AB1E , 6 bytes
Pruébalo en línea!
Explicación
fuente
APL, 22 bytes
Pruébalo en línea!
¿Cómo?
o←4*⍨⍳⍵
-o
= rango (⍵
) 4 [vectorizar]p←|⍵-⍨o
-p
= abs (o
-⍵
) [vectorizar]o/⍨
- toma elo
elemento en el índice donde ...p=⌊/p
- elp
elemento mínimo esfuente
Jalea , 6 bytes
Un enlace monádico que devuelve una lista de un elemento, o un programa completo que imprime el resultado (usando un método ineficiente).
Pruébalo en línea!
¿Cómo?
fuente
PHP , 33 bytes
Pruébalo en línea!
PHP , 56 bytes
Pruébalo en línea!
fuente
C ++, 96 bytes
Versión completa:
ENLACE para probar
fuente
Haskell, 35 bytes
La respuesta de Python3 del puerto de Anders .
fuente
R ,
47443735 bytesPruébalo en línea!
fuente
f=
) y en lugar dex[which.min((x-n)^2)]
usarlawhich.min((x-n)^2)^4
, y luego ponerlaf=
en el encabezado del enlace TIO para probar como aquí :)x
en absoluto. ¡Gracias!n=scan();which.min(((1:n)^4-n)^2)^4
y la entrada va a la sección de pie de página en TIO.Pyth , 9 bytes
Pruébalo en línea!
Pyth , 17 bytes
Un programa completo que utiliza el mismo enfoque aritmético que en la respuesta de @ AndersKaseorg :
Pruébalo en línea!
fuente
Japt , 20 bytes
¡Esto se siente demasiado tiempo!
Pruébalo
fuente
QBIC , 38 bytes
Explicación
fuente
Java (OpenJDK 8) , 64 bytes
Pruébalo en línea!
fuente
Lisp común, 50 bytes
Pruébalo en línea!
fuente
C #, 95 bytes
Usamos 940 como valor establecido ya que cualquier valor mayor desbordará el int.
Versión completa / formateada:
fuente
Ruby ,
2334 bytesNo tengo idea de por qué
0.75
es un número tan importante para esto, pero bueno, lo que sea que funcione.Pruébalo en línea!
fuente