Défi
Écrivez un programme qui prend un tableau de 4 entiers ( qui représente une séquence de nombres générée par un certain algorithme ) et retourne le prochain entier qui suivrait.
Nous n'utiliserons que des algorithmes simples d'addition, de soustraction, de multiplication et de division avec une variation constante (c'est-à-dire non variable).
Pour la division, nous utiliserons les floor
valeurs entières: 133/4 = 33
et33/4 = 8
Vous pouvez supposer qu'il y aura toujours une seule valeur de retour valide
Cas de test
[14,24,34,44]
devrait renvoyer 54 (algorithme d'addition)
[105,45,-15,-75]
devrait retourner -135 (algorithme de soustraction)
[5,25,125,625]
devrait retourner 3125 (algorithme multiplicatif)
[256,64,16,4]
devrait retourner 1 (algorithme de division)
Règles générales
- C'est le code-golf , donc la réponse la plus courte en octets remporte le défi.
- Les failles standard sont interdites
-81/4
est soit21 r 3
ou-20 r -1
.Réponses:
05AB1E ,
181618 octetsExplication
Essayez-le en ligne!
la source
[-325, -82, -21, -6]
Javascript (ES6),
444244 octets (fixe)Enregistré 2 octets, suivant les conseils d'IsmaelMiguel.
Version fixe pour
[2,1,0,0]
et[1,0,0,0]
comme suggéré par edc65Version 30 octets
Pour mémoire, ma première tentative était de
3230 octets mais manquait de support floor () pour la division. Il échoue également pour des cas spéciaux tels que[2,1,0,0]
et[1,0,0,0]
.Démo
la source
[a,b]=>
pour les paramètres de fonction. Les parenthèses sont obligatoires.b*2==c+a
algorithme <=> d'addition / soustractionBrachylog ,
373327 octetsEssayez-le en ligne! ou vérifiez tous les cas de test .
10 octets enregistrés grâce à @LeakyNun .
Explication
Comme l'a souligné LeakyNun, nous n'avons pas besoin du cas de soustraction car il
I
peut s'agir de n'importe quel entier.la source
Haskell, 65 octets
la source
Python 2, 40 octets
C'est littéralement la réponse JS portée en Python (merci @LeakyNun!). Mon approche précédente était ridiculement longue, mais la voici:
Python 2,
169166 octetsLes deuxième et troisième niveaux sont un onglet brut et un onglet brut plus un espace, respectivement, qui jouent vraiment mal avec Markdown, donc les onglets ont été remplacés par 2 espaces.
Assez simple; essaie chaque constante et opérateur qu'il pense être la constante, puis si la combinaison constante / opérateur fonctionne pour chaque élément de la liste (en utilisant une paire
try
/except
pour éviterZeroDivisionError
s), il imprime le résultat du dernier élément de la liste.Je suis sûr qu'il y a une meilleure méthode ici, c'est la méthode naïve.
la source
[1,0,0,0]
lesquelles devrait sortir0
TSQL, 55 octets
Ce script essaie d'ajouter et de soustraire dans la même vérification, puis il essaie de se multiplier, si cela échoue, ce doit être la division.
Violon
la source
C #, 63 octets
Vérifie si la différence entre le premier et le deuxième élément est la même que la différence entre le deuxième et le troisième élément. Si c'est le cas, il fait l'addition / la soustraction, sinon il fait la multiplication / la division.
la source
JavaScript, 73 octets
Tests :
Fonctionne pour tous.
la source
Langue GameMaker, 70 octets
la source
R,
6874Tableau: 68 octets
4 entrées: 45 octets
Solution de bonus avec
log
,exp
,var
, 71 octetsmise à jour: division entière
la source
b-a
pour enregistrer un octet (et je note que vos appels d'exemple ajoutent des espaces).261,65,16,4
retours0.9961686
plutôt que1
(bien sûr, il devrait y avoir un cas de test pour cela dans la question).Java,
125123 octetsGolfé:
Non golfé:
Ce code a sûrement quelques problèmes car il ne gère pas la division par zéro et de telles choses. Cela ne fonctionnera pas non plus s'il y a plus (ou moins) de 4 entiers dans le tableau d'entrée
a
. Ce qui le rend plus que stupide, mais je me suis amusé :)Essayez-le: https://ideone.com/nELH5I
la source
TI-Basic, 37 octets
Fonctionne sur n'importe quelle calculatrice TI-83/84
la source
Python 2,
75 66 6561 octetsBeaucoup plus long que mon entrée précédente de 38 octets qui ne répondait pas correctement à la série de division (tout comme la plupart des autres).
Les cas de test et plus de cas marginaux sont sur idéone
Remarque: la division entière pour un négatif ici est définie comme ayant un reste avec le même signe que le diviseur,
-81/4
serait donc-21
avec un reste de3
et-81/-4
serait20
avec un reste de-1
.la source
-81/-4 != -21
Gelée , 14 octets
Essayez-le en ligne!
la source
Pyth, 18 octets
Accepte l'entrée comme une liste de valeurs séparées par des sauts de ligne.
Essayez-le en ligne!
Explication:
la source