Étant donné deux nombres entiers, sortir les deux entiers, puis la plage entre eux (à l'exclusion des deux).
L'ordre de la plage doit être identique à celui de l'entrée.
Exemples:
Input Output
0, 5 -> [0, 5, 1, 2, 3, 4]
-3, 8 -> [-3, 8, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7]
4, 4 -> [4, 4]
4, 5 -> [4, 5]
8, 2 -> [8, 2, 7, 6, 5, 4, 3]
-2, -7 -> [-2, -7, -3, -4, -5, -6]
Réponses:
R ,
393330 octetsEssayez-le en ligne!
Merci pour les octets sauvegardés à user2390246 et à J.Doe.
la source
:
opérateur utilise le premier élément des deux arguments pendant 30 octets05AB1E , 4 octets
Essayez-le en ligne!
Explication
la source
Python 3 ,
5248474241 octetsEssayez-le en ligne!
Anciennes implémentations combinées.
la source
or-1
enregistrer un octet.Python 2 (Cython) ,
3635 octetsMerci à @nwellnhof pour le golf d'un octet!
Essayez-le en ligne!
Python 2 , 37 octets
Merci à @JonasAusevicius pour le portage vers CPython!
Essayez-le en ligne!
la source
lambda x:x+range(*x+[-cmp(*x)|1])[1:]
. Belle solutionPerl 6 ,
2622 octetsEssayez-le en ligne!
Explication
la source
Python 2 , 40 octets
Essayez-le en ligne!
la source
-(y<x)|1
. très cool mais je ne peux pas comprendre pourquoi ça marche! Avez-vous une chance de l'expliquer?y<x
vérifie siy
est strictement inférieur àx
, et renvoieTrue
si c'est le cas,False
sinon. Après cela, unaire-
est appliquée, qui convertitTrue
à-1
etFalse
à0
. La dernière étape consiste à utiliser bitwise OU ce nombre avec1
. Cela laisse évidemment1
(0b1
) inchangé, et également-1
(-0b1
) inchangé (le bit de signe de-1
est défini, il est donc conservé comme tel). Cependant, il se convertit0
en1
, de sorte querange
cela ne se plaint pas de moi en utilisant unstep
de0
.Python 3,
646251 octetslambda a,b:[a,b]+[*range(a+1,b)]+[*range(a-1,b,-1)]
Essayez-le en ligne!
Python 2,
5845 octetslambda a,b:[a,b]+range(a+1,b)+range(a-1,b,-1)
Essayez-le en ligne!
la source
a<=b and
réponses+
place deor
lambda a,b:[a,b,*range(a+1,b),*range(a-1,b,-1)]
Japt, 8 octets
Essayez-le ici
la source
JavaScript (ES6), 51 octets
Prend les entrées en tant que
(a)(b)
.Essayez-le en ligne!
Commenté
la source
Python 2 ,
474140 octetsEssayez-le en ligne!
Voici le mien, maintenant que beaucoup d'autres réponses Python ont été postées
-6 octets, grâce à GB
la source
a<b or-1
est plus court pour le paramètre 3ème plage. Le plus court que j'ai eu étaitlambda x,y:[x,y]+range(x+(x<y or-1),y,x<y or-1)
Java 10,
1091081041029362 octetsUtilisation d'une chaîne délimitée par des espaces:
Essayez-le en ligne.
Utiliser une liste:
Essayez-le en ligne.
(
a<b?++a<b:--a>b
peut être++a<b||(a-=2)>b
pour le même nombre d'octets: essayez-le en ligne pour la chaîne ou essayez-le en ligne pour la liste .)Old (
109108104102101 octets) répond en utilisant un tableau:-7 octets grâce à @nwellnhof .
Essayez-le en ligne.
Explication:
la source
a->b->{var L=java.util.stream.IntStream.range(a,b).boxed().collect(java.util.Collectors.toList());L.add(0,b);L.add(0,a);return L;}
(130 bytes)var
, c'est pourquoi je mets généralement celles-ci à 8, et celles qui utilisentvar
10 (et celles qui utilisentString.repeat
11). :) Oublié de le mettre à jour après avoir ajouté les réponses List et String, devrait être corrigé maintenant. Merci.APL (Dyalog Extended) , 5 octets
Fonction infixe anonyme.
Essayez-le en ligne!
,
le premier et le dernier (lit. la concaténation des arguments),
et (lit. concaténé à)…
la gamme~
sans pour autant,
le premier et le dernier (lit. la concaténation des arguments)la source
Haskell, 34 octets
Essayez-le en ligne!
la source
b-1
commeb $ (-1)
. Utilisez à lab- 1
place.NegativeLiterals
sur.Gelée , 4 octets
Essayez-le en ligne!
Comment ça marche
la source
J , 26 octets
Essayez-le en ligne!
Explication:
Un verbe dyadique (prend l'argument gauche et droit)
la source
,,[:}.@}:<.+i.@-@(+*)@-
pour 23 octets et pas de casse particulière sur l'ordre des arguments relatifs (plutôt: il est caché à l'intérieur du signum*
). Je sens que cela pourrait descendre sous 20 ans mais je suis fatigué.Octave , 45 octets
Essayez-le en ligne!
la source
J , 13 octets
Essayez-le en ligne!
la source
i.
argument négatif.Lot, 107 octets
Prend l'entrée en tant qu'argument de ligne de commande. Explication:
Affiche les deux entiers.
Essayez les deux gammes ascendantes et descendantes.
Boucle sur la plage inclusive.
Exclure les deux entiers.
Affiche la valeur actuelle.
la source
Pyth , 5 octets
L'entrée est une liste à deux éléments
[input 1, input 2]
. Essayez-le en ligne ici ou vérifiez tous les cas de test en même temps ici .la source
F
au lieu de.*
sur des listes à 2 éléments est un truc génial que je vais absolument utiliser à partir de maintenant.Rouge , 75 octets
Essayez-le en ligne!
la source
Propre , 49 octets
Essayez-le en ligne!
la source
Ruby ,
3340 octetsEssayez-le en ligne!
Solution temporaire, essayant de trouver une meilleure idée
la source
[4,4]
cela ne donne qu'un seul[4]
Python 2 ,
524741 octetsEssayez-le en ligne!
-5 grâce à @JoKing
-6 en coupant le premier élément de la gamme (idée volée de et avec crédit à @TFeld)
Version non lambda ...
Python 2 ,
514947 octetsEssayez-le en ligne!
-2 grâce à @JoKing
la source
APL (Dyalog Classic) , 29 octets
Essayez-le en ligne!
Un port de ma
J
solutionla source
PHP (102 octets)
bac à sable
Malheureusement (pour le golf), PHP a des noms de fonction plutôt verbeux, qui contribuent beaucoup à la longueur. Mais l’idée de base est de créer une plage, puis d’extraire le dernier élément et de le réassembler au décalage 1. Par
4,4
exemple, j’ai dû ajoutercount($r=range($a,$b))>1?...:$r=[$a,$b];
ce qui ajoute un peu, et malheureusement,array_splice()
c’est par référence qui m’a frappé pendant un peu plus. octets ($r= and a ;
). Tout ça à cause de ce "cas de bord", lol.Eh bien en tout cas profiter!
la source
function t($a,$b){$o=array($a,$b);for($i=$a+1;$i<$b;$i++)$o[]=$i;print_r($o);}
function t($a,$b){echo $a.$b;for($i=$a+1;$i<$b;$i++)echo $i};
Clojure , 61 octets
Une fonction anonyme qui prend un vecteur 2 en entrée et retourne une liste.
Essayez-le en ligne!
Explication
la source
D , 85 octets
Essayez-le en ligne!
Un portage de la réponse C ++ de @ HatsuPointerKun en D.
la source
TI-BASIC,
35 à34 octets-1 octet de Misha Lavrov
la source
1-2(A>B
parcos(π(A>B
.seq(
ne fonctionnerait pas pour les entrées oùA
etB
sont les mêmes, malheureusement :(seq(
, alors je ne suis plus convaincu qu'il est même plus petit. Pourtant, lecos(
truc devrait aider.Charbon de bois , 15 octets
Essayez-le en ligne! Le lien est vers la version verbeuse du code. Explication:
Imprimer les entrées sur des lignes séparées.
Imprimer la plage ascendante, le cas échéant.
Imprimer la plage inverse inverse inverse, le cas échéant.
la source
Dart ,
8584 octetsEssayez-le en ligne!
>=
à>
la source