Ce défi consiste à sortir sur votre terminal, fenêtre, toile ou écran les chiffres de zéro à 10 inclus. Chaque nombre sorti doit être affiché comme un nybble de 4 bits de large, donc zéro doit s'afficher au fur 0000
et à mesure.
Vous pouvez séparer chaque numéro émis par un espace, une virgule ou un retour chariot. La plus petite solution l'emporte, mais les chiffres peuvent être affichés dans l'ordre que vous souhaitez tant qu'il n'y a pas de numéros répétitifs dans votre séquence.
Les entrées dans les langages binaires de bas niveau ne doivent pas se soucier des virgules ou des séparateurs d'espaces blancs s'il n'est pas possible de sortir avec des virgules ou des espaces blancs (c'est-à-dire que la sortie standard est limitée au binaire uniquement, ou votre solution est pour un kit informatique précoce comme le KIM-1 qui a un affichage numérique limité).
la source
Réponses:
SmileBASIC, 26 octets
la source
MATL , 6 octets
Essayez-le sur MATL Online
Explication
la source
05AB1E ,
98 octetsEssayez-le en ligne!
la source
JavaScript, 46 octets
Pourquoi utiliser une fonction de remplissage lorsque vous pouvez simplement ajouter 16 à chaque nombre et couper le premier chiffre binaire?
la source
Japt , 7 octets
Et ici, je pensais que Japt était voué à être plus long que toutes les autres langues de golf ...
Testez-le en ligne!
Explication
Normalement, les virgules peuvent être supprimées dans Japt, mais celui-ci est là à cause d'un bogue:
_
signifie normalementfunction(Z){Z
, mais pour une raison quelconque, le compilateur pense que celaA_
signifiefunction(A,Z){Z
.la source
Aô_¤
Utilitaires Bash + GNU, 26
Essayez-le en ligne .
la source
seq -w 0 1010
devrait marcher.-w
optionseq
avant.Utilitaires Bash + Unix,
2926 octetsEssayez-le en ligne!
C'est la même longueur que la solution de @ DigitalTrauma / @ Dennis, mais utilise une méthode complètement différente.
La sortie est:
(Toute commande est autorisée.)
Pure Bash , 34 octets
Essayez la version pure Bash en ligne!
La sortie est:
la source
J, 6 octets
Merci aux miles pour l'avoir réduit à 6 octets!
la source
#:i.11
devrait fonctionner aussi bienGelée , 7 octets
Essayez-le en ligne!
(5 octets si les lignes de fin de Nybbles sont autorisées,
2Bṗ4Y
)Comment?
Imprime dans l'ordre décroissant.
Une alternative à 7 octets est
2ṗ4Ịṫ6Y
, la[1,0]
est remplacée par[1,2]
etỊ
est la monade (abs(z)<=1
) est "insignifiante" , convertissant2
s en0
s.la source
Python 3.6,
3635 octets-1 octet grâce à @JonathanAllan
Python 3.5 et versions antérieures:
Essayez-le en ligne!
la source
i=11
(nouvelle ligne)while i:i-=1;print(f"{i:04b}")
, pour 35.PHP, 33 octets
la source
CJam , 12 octets
Essayez-le en ligne!
Explication
L'approche cartésienne du pouvoir aurait été mon choix, mais a déjà été retenue.
Donc, cela génère des nombres de 0 à 10, et pour chacun, il ajoute 16 et convertit en binaire. L'ajout de 16 garantit que les zéros de tête requis sont produits, ainsi qu'un autre de tête qui est supprimé.
la source
MATLAB / Octave, 13 octets
Démo en ligne
la source
Gelée ,
10, 9, 8 octetsEssayez-le en ligne!
Je ne suis pas si bon en gelée, donc je serais ouvert à tous les conseils!
Cela utilise le premier algorithme d'Emigna
Merci à Dennis d'avoir
rasé deux octets,ce qui m'a fait lier sa propre réponse. : PExplication:
la source
Ḋ€
enregistre un octet.⁴r27
enregistre un autre.Python 2 ,
3836 octetsMerci à @DJMcMayhem d'avoir joué au golf sur 2 octets!
Essayez-le en ligne!
la source
for n in range(11):print bin(n+16)[3:]
also at 38 bytes.n=16;exec"print bin(n)[3:];n+=1;"*11
is two shorterJelly, 8 bytes
Try it online!
How it works
la source
RProgN, 15 Bytes
This has been a very good modivation to add apad
function. The entirety of]L4\-'0'\m\.
, more than half the code, is to pad._Saved 6 bytes thanks to @ETHProductions, that's the pad function cut in half.
Explained
Try it online!
la source
length of the Alphabet
Nice way to save a byte ;-)Retina,
3633 bytesTry it online!
Explanation
Replace the empty (non-existent) input with
%%%%
.On the first run of this stage, it will match
^%
and essentially replace the text%%%%
with the two lines0%%%
and1%%%
. The stage will loop until the output stops changing. On the second run, it will match\b%
(since digits count as word characters and%
doesn't), and replace the groups by duplicating them and adding0
to one copy and1
to the other:0%%%
becomes the lines00%%
and01%%
(and the same sort of thing for1%%%
). Through this loop all 16 bitstrings will be produced, linefeed separated.The first 11 matches of
\d+
(a run of at least 1 digit) are retrieved. The matches are output in a linefeed-separated list.la source
0$%'¶$%
1` line works. What do$%
,`1
,'¶
represent?$%`
represents everything before the match on the same line, and$%'
is everything after the match on the same line.¶
is a literal linefeed. So basically the replacement matches the first%
on a line and replaces it with0
plus the rest of the line it was on, a newline, the beginning of the line it was on, and a1
. Of course, the beginning and end of the line it was on are untouched by the replacement because they weren't part of the match.G11`
as the last line of the regex insteadRuby, 25 bytes
la source
BF,
121101 bytesRequires a trailing newline. Makes use of
!
symbol (so, check the box that says!
) with this interpreter (try it online!).Potentially 51 bytes if each operator was considered as 4 bits
la source
!
checkbox being enabled.C#, 96 bytes
Golfed
Ungolfed
Full code
Releases
96 bytes
- Initial solution.la source
C
170120 bytesUngolfed version:
Can definitely be shortened!?
@Ahemone Awesome idea, Thanks!
Should work now! Try it online!
la source
for
loop in your golfed version should go to 4 rather than 3, but that doesn't matter because the loop can be eliminated entirely and the second for loop can start from 0. You can also just usewhile(n)
, but compacting thewhile
loop down into afor
loop saves more again.n/=2
will also save you a byte over the shift. You're also missing a terminating}
on the golfed version causing an error on compilation.}
and improved the code, 50 bytes shorter based on your idea.R - 23
We can use
intToBin
function from theR.utils
package:la source
C,
756869 bytesApproach 1:
757374bytesTry it online!
Approach 2:
6869 bytesTry it online!
la source
m,n;f(o)
instead ofm,n,o;f()
Python 2, 44 bytes
This uses the
zfill
function which works likerjust
except it always padds with0
so you don't waste bytes on an argument.la source
lambda k,l:' '*(len(k)-l)+k
) Wow... +1 just because of this :DPyke, 8 bytes
Try it here!
Also 8 bytes:
Try it here!
la source
Pyth -
87 bytesTry it online here.
la source
stacked, 30 bytes
Try it online!
11:>
is a range from0
to10
. The rest is rather self-explanatory.Other solutions that I've found:
la source
Ruby, 38 bytes
la source
11.times{|i|puts i.to_s(2).rjust 4,?0}
BF, 134 bytes
I'm sure this can be shortened--it's pretty much my first BF golf.
Try it online! Assumes a tape infinite in both directions, like the interpreter at TIO uses. An interpreter where
<
at the left end of the tape is a no-op would save three bytes.Explanation
More than half of the code (the first 77 bytes, to be precise) is spent initializing the tape. The steps go like this:
The cells initialized to
1
store the bits of our number plus 1:1
represents a zero bit and2
represents a one bit.The initialization phase ended with the pointer on the
11
. Now we use this cell to run 11 iterations of our loop:la source