Un nombre biquadratique est un nombre qui est la quatrième puissance d'un autre entier, par exemple: 3^4 = 3*3*3*3 = 81
Étant donné un entier en entrée, affichez le nombre biquadratique le plus proche.
Voici les 15 premiers doubles carrés:
1, 16, 81, 256, 625, 1296, 2401, 4096, 6561, 10000, 14641, 20736, 28561, 38416, 50625
C'est du golf de code donc le moins d'octets dans chaque langue gagne
C'est OEIS A000583
code-golf
sequence
number-theory
integer
Skidsdev
la source
la source
n^4
etn
alterne en signe.2 x n²
chiffres: 2, 8, 18, 32, 50, 72, 98, ...Réponses:
Python 3 , 35 octets
Essayez-le en ligne!
Comment ça fonctionne
La valeur n à laquelle la sortie passe de ( k - 1) 4 à k 4 satisfait √ (√n - 3/4) + 1/2 = k , ou n = ((k - 1/2) 2 + 3 / 4) 2 = ( k 2 - k + 1) 2 = (( k - 1) 4 + k 4 + 1) / 2, qui est exactement le premier entier le plus proche de k 4 .
(Fonctionne pour tous n ≤ 4504699340341245 = (8192 4 + 8193 4 - 7) / 2> 2 52 , après quoi l'arrondi à virgule flottante commence à le casser, même s'il fonctionne mathématiquement pour tout n .)
la source
round
si vous passez à Python 2 qui arrondit tous les 0,5.Octave , 35 octets
Ce défi nécessitait une approche par convolution.
Essayez-le en ligne!
Explication
L'expression
(1:n).^4
produit le vecteur ligne[1 16 81 256 ... n^4]
.Ce vecteur est ensuite convolué avec
[1 1]/2
, ce qui équivaut à calculer la moyenne glissante des blocs de taille2
. Cela suppose implicitement que le vecteur est rempli à gauche et à droite avec0
. Ainsi, la première valeur du résultat est0.5
(moyenne d'un implicite0
et1
), la seconde est8.5
(moyenne d'un1
et16
), etc.Par exemple, pour
n = 9
le résultat deconv((1:n).^4,[1 1]/2)
estLa comparaison
n>...
donne alorset appliquer
sum(...)
donne2
. Cela signifie quen
dépasse exactement2
les points médians entre les nombres biquadratiques (y compris le point médian supplémentaire0.5
). Enfin,^4
soulève cela4
pour obtenir le résultat,16
.la source
Haskell ,
5149 octetsFonction monade ftw!
Essayez-le en ligne!
Explication:
la source
MATL , 6 octets
Essayez-le en ligne!
Explication
Considérez l'entrée
9
comme exemple.la source
Neim , 5 octets
Explication:
Essayez-le en ligne!
la source
Excel, 25 octets
Excel le met à jour
=INT((A1^0.5-3/4)^0.5+0.5)^4
la source
Excel.ActiveSheet
objet les prennent de la celluleA1
Mathematica, 21 octets
la source
Brachylog , 9 octets
Essayez-le en ligne!
Explication
la source
JavaScript (ES7), 42 octets
Version récursive, 44 octets
Démo
Afficher l'extrait de code
la source
Octave , 37 octets
Fonction anonyme qui utilise l'interpolation du plus proche voisin.
Essayez-le en ligne!
la source
conv
:(05AB1E , 6 octets
Essayez-le en ligne!
Explication
la source
APL, 22 octets
Essayez-le en ligne!
Comment?
o←4*⍨⍳⍵
-o
= range (⍵
) 4 [vectoriser]p←|⍵-⍨o
-p
= abs (o
-⍵
) [vectoriser]o/⍨
- prendre l'o
élément à l'index où ...p=⌊/p
- l'p
élément minimum estla source
Gelée , 6 octets
Un lien monadique renvoyant une liste d'un élément, ou un programme complet qui imprime le résultat (en utilisant une méthode inefficace).
Essayez-le en ligne!
Comment?
la source
PHP , 33 octets
Essayez-le en ligne!
PHP , 56 octets
Essayez-le en ligne!
la source
C ++, 96 octets
Version complète:
LIEN pour essayer
la source
Haskell, 35 octets
Réponse Python3 du port d' Anders .
la source
R ,
47443735 octetsEssayez-le en ligne!
la source
f=
) et au lieu de l'x[which.min((x-n)^2)]
utiliserwhich.min((x-n)^2)^4
, puis la mettref=
dans l'en-tête du lien TIO pour tester comme ici :)x
du tout. Je vous remercie!n=scan();which.min(((1:n)^4-n)^2)^4
et l'entrée va dans la section de pied de page sur TIO.Pyth , 9 octets
Essayez-le en ligne!
Pyth , 17 octets
Un programme complet qui utilise la même approche arithmétique que dans la réponse de @ AndersKaseorg :
Essayez-le en ligne!
la source
Japt , 20 octets
Cela semble beaucoup trop long!
Essaye-le
la source
QBIC , 38 octets
Explication
la source
Java (OpenJDK 8) , 64 octets
Essayez-le en ligne!
la source
Lisp commun, 50 octets
Essayez-le en ligne!
la source
C #, 95 octets
Nous utilisons 940 comme valeur de réglage car toute valeur plus grande débordera l'int.
Version complète / formatée:
la source
Rubis ,
2334 octetsJe n'ai aucune idée pourquoi
0.75
est-ce un nombre si important pour cela, mais bon, peu importe ce qui fonctionne.Essayez-le en ligne!
la source