Deltas inverses d'un tableau
Une suite de deltas inverses d'un tableau
Votre tâche consiste à prendre un tableau d'entiers 32 bits signés, à le recompiler avec ses deltas inversés.
Exemple
La liste,
18 19 17 20 16
a les deltas:
1 -2 3 -4
qui, inversé, donne:
-4 3 -2 1
puis une fois recompilé, en utilisant les rendements:
18 14 17 15 16
qui devrait être votre valeur de retour.
La recompilation consiste à prendre le C
, qui est la première valeur du tableau. Dans ce cas, 18
et appliquez-lui les deltas dans l'ordre. Alors 18 + -4
donne 14
, 14 + 3
donne 17
, etc.
Entrée sortie
Vous recevrez une liste / tableau / table / tuple / pile / etc. des entiers signés en entrée via toute méthode d'entrée standard.
Vous devez à nouveau générer les données modifiées sous toute forme acceptable, en suivant la méthode d'inversion delta ci-dessus.
Vous recevrez N entrées 0 < N < 10
où chaque numéro se situe dans la plage-1000 < X < 1000
Cas de test
1 2 3 4 5 -> 1 2 3 4 5
18 19 17 20 16 -> 18 14 17 15 16
5 9 1 3 8 7 8 -> 5 6 5 10 12 4 8
6 5 4 1 2 3 -> 6 7 8 5 4 3
Remarques
- Comme indiqué ci-dessus, vous recevrez toujours au moins 1 entrée et pas plus de 9.
- Le premier et le dernier numéro de votre sortie correspondront toujours à celui de l'entrée.
- Seule la sortie d'entrée standard est acceptée
- Des échappatoires standard s'appliquent
- C'est le golf de code , donc le nombre d'octets le plus bas gagne!
- S'amuser!
Et le gagnant est...
Dennis! Qui a d'abord pris la première place, puis s'est battu avec une solution plus courte, se donnant à la fois la première et la deuxième place!
Mention honorable à ais523 avec leur gelée, qui, sans Dennis entrant juste avant eux, aurait occupé la deuxième place.
Réponses:
Gelée , 5 octets
Il utilise l'algorithme de réponse Julia Glen O .
Essayez-le en ligne!
Comment ça marche
la source
Gelée , 6 octets
Essayez-le en ligne!
Comment ça marche
la source
Ṛ
où j'aiU
). Je ne sais pas si cela les rend suffisamment différents pour ne pas considérer les doublons.U
vectorise tandisṚ
que non, mais leur comportement pour les tableaux plats est identique.Ḣ
tant que 0x1e22 etṚ
0x1e5a, dont chacun nécessite donc 3 octets.Julia, 24 octets
C'est la façon «intelligente» de résoudre le problème. L'inverse négatif du tableau a les «deltas» inversés, et il vous suffit ensuite de corriger le fait qu'il commence / se termine aux mauvais endroits.
la source
Snowman 1.0.2, 72 octets
Essayez-le en ligne!
Il s'agit d'un sous-programme qui prend des entrées et des sorties vers le permavar actuel.
la source
JavaScript (ES6),
4537 octetsPort de la réponse Mathematica de @ JHM. (Je suis sûr que j'aurais pu le dériver moi-même, mais pas à cette heure de la nuit.) Edit: 8 octets enregistrés grâce à @ edc65.
la source
[...
et]
?a
, ce qui est utilisé plus tard dans le programmea=>a.reverse(z=a[0]).map(e=>z+a[0]-e)
z=a[0]
, mais j'ai oublié de supprimer le[...]
et(,i,b)
.Mathematica, 23 octets
Fonction sans nom. Le résultat est simplement: reverse ((premier élément) + (dernier élément) - (chaque élément)).
la source
Python 2,
96745444 octetsL'entrée est donnée sous la forme d'un tableau entouré de crochets. La sortie est au même format.
Merci à @Kade d'avoir économisé
2242 octets en utilisant une méthode beaucoup plus simple que ce que je faisais avant!Merci à @ Sherlock9 d'avoir économisé 10 octets en éliminant le compteur d'index de la compréhension de la liste!
Super, maintenant si je joue au golf, je vais avoir le problème "barré 44 est toujours 44". ; _;
la source
lambda l:[l[0]+l[-1]-l[i]for i in range(len(l))][::-1]
pour 54 octets? :) (Crédits à Glen O. pour le calcul)l[i]for i in range(len(l))
, vous pouvez utiliserj for j in l
pour enregistrer 14 octets.05AB1E , 8 octets
Essayez-le en ligne!
Traduction de ma réponse MATL, deuxième approche.
la source
¬s¥Rvy)}
R,
3730 octetsEdit: Maintenant, en utilisant l'approche dans la réponse Julia de Glen O
Vieux:
Lit l'entrée, calcule les deltas, concatène avec le premier élément et calcule la somme cumulée.
la source
MATL , 8 octets
Essayez-le en ligne!
Il s'agit d'une application directe de la définition. Considérez la saisie
[18 19 17 20 16]
comme exemple.Approche différente, même nombre d'octets:
Essayez-le onllne!
Tableau inversé et inversé plus les première et dernière entrées du tableau d'origine.
la source
Japt, 8 octets
Exécutez-le en ligne
la source
Pyth - 10 octets
Suite de tests .
la source
아희 (Aheui) , 3 * 21 caractères + 2 "\ n" = 65 octets
Suppose l'entrée dans la pile 아. La sortie sera stockée dans la pile 안.
Si vous voulez essayer ce code:
À la fin de la première ligne de ce code, ajoutez la
벙
longueur de caractère (n) -times (c'est-à-dire si l'entrée est de 7 entiers, insérez-la 7 fois). Pour chaque invite, tapez un entier:Essayez-le ici! (copiez et collez le code)
Exemple
Pour
1, 2, 3, 4, 5
:et puis tapez
1
,2
,3
,4
et5
(il y aura 5 invites).Version alternative (65 octets)
la source
65 bytes in UTF-8
ou quelque chose?C # 42 octets
Prend un
int[]
et retourne unIEnumerable<int>
.(Ce n'est en fait qu'une version portée de la version de JHM ..)
la source
TSQL, 200 octets
Variable de table utilisée comme entrée
Essaye le
la source
PHP,
605652 octets-4 octets grâce à @ user59178
fonctionne sur des arguments de ligne de commande, utilise le trait de soulignement comme séparateur. Courir avec
php -r '<code>' <space separated numbers>
la source
$n
comme variable de contrôle? J'ai essayé une version comme ça et elle était de 4 octets plus courte et semblait fonctionner.Perl 6 ,
48 3330 octetsEssayez-le
Étendu:
Le
*-1
est également une expression lambda de type WwhatCode, où le*
est le seul paramètre positionnel.la source
[\+]
[\+] 3,-1,1,-5
(3,2,3,-2)
[\,] 3,-1,1,-5
((3,), (3,-1), (3,-1,1), (3,-1,1,-5))
Julia 0.4 , 32 octets
Essayez-le en ligne!
la source
BASH, 71 octets
la source
C ++ 14, 103 octets
Comme lambda sans nom, ce qui nécessite son entrée d'avoir
rbegin
,rend
,back
etpush_back
comme les conteneursvector
,deque
oulist
.Utilisation de l'approche de la réponse Julia de Glen O
Non golfé et utilisation:
la source
Haskell, 33 octets
Utilise la même logique que JHM:
Assez lisible également.
la source
(!!0)
pourhead
et en utilisant(<$>)
pourmap
: Essayez-le en ligne!Convexe , 10 octets
Essayez-le en ligne!
la source
Clojure, 101 octets
Suit à peu près la description:
la source
Java 7, 96 octets
Explication:
Code de test:
Essayez-le ici.
Sortie:
la source
APL (Dyalog Unicode) , 11 octets SBCS
Fonction de préfixe tacite anonyme.
Essayez-le en ligne!
+\
somme cumulée de⊃
le premier élément de l'argument,
suivi∘
par⌽
l'inversion de2-⍨/
la différence par paire de⊢
l'argumentla source