Définition
Les entiers narcissiques 1 d'un tableau pensent qu'ils sont meilleurs que leurs voisins, car ils sont strictement supérieurs à leur moyenne arithmétique.
Les voisins sont définis comme suit:
Si l'entier est à l'index 0 (le premier), ses voisins sont le dernier et le deuxième élément de la liste.
Si l'entier n'est ni le premier ni le dernier, ses voisins sont les deux éléments immédiatement adjacents.
Si l'entier est à l'index -1 (le dernier), ses voisins sont l'avant-dernier et les premiers éléments de la liste.
Tâche
Étant donné un tableau d'entiers, votre tâche consiste à éliminer les narcissiques.
Les entiers peuvent être positifs, négatifs ou nuls.
Vous pouvez supposer que le tableau contient au moins trois éléments.
Toutes les règles standard s'appliquent. Il s'agit de code-golf , donc le code le plus court en octets l'emporte.
Exemples
Considérez le tableau [6, 9, 4, 10, 16, 18, 13]
. Ensuite, nous pouvons construire le tableau suivant:
Élément | Voisins | Moyenne des voisins | Est narcissique? -------- + ------------ + ------------------ + --------- -------- 6 | 13, 9 | 11 | Faux. 9 | 6, 4 | 5 | Vrai. 4 | 9, 10 | 9.5 | Faux. 10 | 4, 16 | 10 | Faux. 16 | 10, 18 | 14 | Vrai. 18 | 16, 13 | 14,5 | Vrai. 13 | 18, 6 | 12 | Vrai.
En filtrant les narcissiques, nous nous retrouvons avec [6, 4, 10]
. Et c'est tout!
Cas de test
Entrée -> Sortie [5, -8, -9] -> [-8, -9] [8, 8, 8, 8] -> [8, 8, 8, 8] [11, 6, 9, 10] -> [6, 10] [1, 2, 0, 1, 2] -> [1, 0, 1] [6, 9, 4, 10, 16, 18, 13] -> [6, 4, 10] [6, -5, 3, -4, 38, 29, 82, -44, 12] -> [-5, -4, 29, -44]
1 - Narcissique ne signifie pas mathématiquement narcissique .
la source
Haskell , 51 octets
Essayez-le en ligne! Exemple d'utilisation:
f [1,2,3]
rendements[1,2]
.Car
s = [1,2,3]
,last s:s
c'est la liste[3,1,2,3]
ettail$s++s
la liste[2,3,1,2,3]
.zip3
génère une liste de triplets à(a,b,c)
partir de trois listes données, en tronquant les plus longs à la longueur de la liste la plus courte. Nous obtenons[(3,1,2),(1,2,3),(2,3,1)]
, enb
étant l'élément de liste d'origine eta
etc
ses voisins. La compréhension de la liste sélectionne alors toutb
oùb*2<=a+c
, ceb
n'est pas narcissique.la source
Octave / MATLAB, 48 octets
Essayez-le en ligne!
Explication
Le tableau d'entrée est d'abord étendu avec les dernières (
x(end)
) et premières (x(1)
) entrées sur les côtés appropriés.Le test de narcissisme se fait en
conv
olving le tableau étendu avec[1, -2, 1]
et en ne gardant que la'valid'
partie.La comparaison de chaque entrée du résultat de convolution avec
0
donne un index logique (masque) qui est utilisé pour sélectionner les nombres dans l'entrée.la source
J , 16 octets
Essayez-le en ligne!
Explication
la source
Japt ,
171615 octetsEssayez-le
Explication
Entrée implicite du tableau
U
.Remove (
k
) les éléments qui retournent true lorsqu'ils sont passés par une fonction, avecY
étant l'index courant, qui vérifient si l'élément courant est supérieur alors ...Le tableau
[Y-1, Y+1]
...Réduit par addition (
x
) après l'indexation de chaque élément dansU
...Multiplié par
.5
.Alternative, 15 octets
Essayez-le
la source
R ,
5156 octetsMerci à user2390246 d'avoir corrigé mon algorithme
Essayez-le en ligne!
index
l
oùc(l[-1],l[1])+c(l[s],l[-s])
, les sommes voisines del
, ne sont pas inférieures à deux foisl
.la source
Mathematica, 40 octets
la source
<=
au lieu de<
.>=
.Pick
des numéros non narcissiques.Gelée , 17 octets
Essayez-le en ligne!
la source
Python 2 ,
6460 octetsl[-~j%len(l)]
(et un espace) à(l+l)[-~j]
.Essayez-le en ligne!
la source
Java 8,
141137127 octets-10 octets grâce à @Nevay .
Explication:
Essayez-le ici.
la source
Julia 0,6 , 38 octets
Essayez-le en ligne!
la source
JavaScript ES5, 59 octets
la source
Perl 5 , 51 + 1 (
-a
) = 52 octetsEssayez-le en ligne!
la source
PowerShell , 75 octets
la source
APL, 20 octets
Essayez-le en ligne!
la source