Wyzwanie polega na wyświetleniu na terminalu, oknie, kanwie lub ekranie liczb od zera do 10 włącznie. Każda wyprowadzona liczba musi być pokazana jako 4-bitowa nibble, więc zero musi być pokazane jako 0000
i tak dalej.
Możesz oddzielić każdą wyprowadzoną liczbę spacją, przecinkiem lub znakiem powrotu karetki. Najmniejsze rozwiązanie wygrywa, ale liczby mogą być wyświetlane w dowolnej kolejności, pod warunkiem, że w sekwencji nie ma powtarzających się liczb.
Wpisy w niskopoziomowych językach binarnych nie muszą martwić się o separatory przecinków lub białych znaków, jeśli nie można wyprowadzać przecinków lub białych znaków (tzn. Standardowe wyjście jest ograniczone tylko do plików binarnych lub twoje rozwiązanie jest dla wczesnego zestawu komputerowego takich jak KIM-1, który ma ograniczony wyświetlacz cyfrowy).
źródło
Odpowiedzi:
SmileBASIC, 26 bajtów
źródło
MATL , 6 bajtów
Wypróbuj w MATL Online
Wyjaśnienie
źródło
05AB1E ,
98 bajtówWypróbuj online!
źródło
JavaScript, 46 bajtów
Po co korzystać z funkcji wypełniania, gdy można po prostu dodać 16 do każdej liczby i wyciąć pierwszą cyfrę binarną?
źródło
Japt , 7 bajtów
I tutaj myślałem, że Japt jest skazany na dłuższe niż każdy inny język golfowy ...
Przetestuj online!
Wyjaśnienie
Zwykle przecinki można usunąć w Japt, ale ten jest tam z powodu błędu:
_
zwykle oznaczafunction(Z){Z
, ale z jakiegoś powodu kompilator myśli, żeA_
znaczyfunction(A,Z){Z
.źródło
Aô_¤
Narzędzia Bash + GNU, 26
Wypróbuj online .
źródło
seq -w 0 1010
powinno działać.-w
opcjiseq
.Narzędzia Bash + Unix,
2926 bajtówWypróbuj online!
Jest to ta sama długość co rozwiązanie @ DigitalTrauma / @ Dennis, ale używa zupełnie innej metody.
Dane wyjściowe to:
(Każde zamówienie jest dozwolone.)
Pure Bash , 34 bajty
Wypróbuj czystą wersję Bash online!
Dane wyjściowe to:
źródło
J, 6 bajtów
Dzięki milom za zmniejszenie go do 6 bajtów!
źródło
#:i.11
powinien równie dobrze działaćGalaretka , 7 bajtów
Wypróbuj online!
(5 bajtów, jeśli dozwolone są końcowe linie nybbles
2Bṗ4Y
),W jaki sposób?
Drukuje w kolejności malejącej.
Alternatywnym 7 byter jest
2ṗ4Ịṫ6Y
The[1,0]
zastępuje się[1,2]
iỊ
jest „nie ma znaczenia” monada (abs(z)<=1
), konwersja2
s na0
sekundę.źródło
Python 3.6,
3635 bajtów-1 bajt dzięki @JonathanAllan
Python 3.5 i wcześniejsze:
Wypróbuj online!
źródło
i=11
(nowa linia)while i:i-=1;print(f"{i:04b}")
, za 35.PHP, 33 bajty
źródło
CJam , 12 bajtów
Wypróbuj online!
Wyjaśnienie
Podejście kartezjańskie do władzy byłoby moim wyborem, ale zostało już podjęte.
To generuje liczby od 0 do 10, a dla każdego dodaje 16 i konwertuje na binarne. Dodanie 16 zapewnia wygenerowanie wymaganych zer wiodących wraz z dodatkowym wiodącym zeriem, który jest usuwany.
źródło
MATLAB / oktawa, 13 bajtów
Demo online
źródło
Galaretka ,
10, 9, 8 bajtówWypróbuj online!
Nie jestem taka świetna w galaretce, więc byłbym otwarty na wszelkie wskazówki!
Wykorzystuje pierwszy algorytm Emigny
Dziękuję Dennisowi za
wygolenie dwóch bajtów,coskłoniłomnie do związania własnej odpowiedzi. : PWyjaśnienie:
źródło
Ḋ€
zapisuje bajt.⁴r27
ratuje kolejny.Python 2 ,
3836 bajtówDzięki @DJMcMayhem za grę w golfa z 2 bajtów!
Wypróbuj online!
źródło
for n in range(11):print bin(n+16)[3:]
również w 38 bajtach.n=16;exec"print bin(n)[3:];n+=1;"*11
jest dwa razy krótszyGalaretka , 8 bajtów
Wypróbuj online!
Jak to działa
źródło
RProgN, 15 bajtów
To była bardzo dobra modyfikacja dodaniapad
funkcji. Całość]L4\-'0'\m\.
ponad połowę kodu jest podkładki._Oszczędność 6 bajtów dzięki @ETHProductions , to funkcja pad przecięta na pół.
Wyjaśniono
Wypróbuj online!
źródło
length of the Alphabet
Fajny sposób na zaoszczędzenie bajtu ;-)Siatkówka ,
3633 bajtówWypróbuj online!
Wyjaśnienie
Zamień puste (nieistniejące) wejście na
%%%%
.Przy pierwszym uruchomieniu tego etapu dopasuje
^%
i zasadniczo zastąpi tekst%%%%
dwoma liniami0%%%
i1%%%
. Scena będzie się zapętlać, aż wyjście przestanie się zmieniać. Przy drugim uruchomieniu dopasuje się\b%
(ponieważ cyfry liczą się jako znaki słowne, a%
nie), i zastąpi grupy, kopiując je i dodając0
do jednej kopii i1
do drugiej:0%%%
staje się liniami00%%
i01%%
(i to samo dla1%%%
). Poprzez tę pętlę zostanie wygenerowanych wszystkie 16 ciągów bitów, oddzielonych od linii.Pobieranych jest pierwsze 11 dopasowań
\d+
(serii co najmniej 1 cyfry). Dopasowania są wyprowadzane na liście oddzielonej od linii.źródło
0$%'¶$%
działa ta linia 1`. Czego$%
,`1
,'¶
reprezentują?$%`
reprezentuje wszystko przed meczem w tej samej linii i$%'
jest wszystkim po meczu w tej samej linii.¶
to dosłowny kanał. Zasadniczo więc zamiana dopasowuje pierwszą%
na linii i zastępuje ją0
plus resztę linii, na której był, nową linię, początek linii, na której był włączony, i a1
. Oczywiście, początek i koniec linii, na której był włączony, nie są zmieniane, ponieważ nie były częścią meczu.G11`
zamiast tego użyć ostatniego wiersza wyrażenia regularnegoRubin, 25 bajtów
źródło
BF,
121101 bajtówWymaga końca nowej linii. Używa
!
symbolu (więc zaznacz pole z napisem!
) w tym tłumaczu (spróbuj online!) .Potencjalnie 51 bajtów, jeśli każdy operator był uważany za 4 bity
źródło
!
zaznaczonego pola wyboru.C #, 96 bajtów
Grał w golfa
Nie golfił
Pełny kod
Prasowe
96 bytes
- Wstępne rozwiązanie.źródło
C
170120 bajtówWersja bez golfa:
Zdecydowanie można go skrócić !?
@Ahemone Świetny pomysł, dzięki!
Powinien działać teraz! Wypróbuj online!
źródło
for
pętla w wersji do gry w golfa powinna przejść do 4 zamiast 3, ale to nie ma znaczenia, ponieważ pętla może zostać całkowicie wyeliminowana, a druga do pętli może zaczynać się od 0. Możesz także użyćwhile(n)
, ale zwężającwhile
pętlę dofor
pętla oszczędza więcej ponownie.n/=2
zaoszczędzi ci również bajt podczas zmiany. Brakuje również zakończenia}
w wersji golfowej powodującej błąd przy kompilacji.}
i poprawiono kod, o 50 bajtów krótszy w zależności od Twojego pomysłu.R - 23
Możemy użyć
intToBin
funkcji zR.utils
pakietu:źródło
C,
756869 bajtówPodejście 1:
757374bajtyWypróbuj online!
Podejście 2:
6869 bajtówWypróbuj online!
źródło
m,n;f(o)
zamiastm,n,o;f()
Python 2, 44 bajty
Korzysta z
zfill
funkcji, która działa podobnie,rjust
z tym, że zawsze jest to padds,0
dzięki czemu nie marnujesz bajtów na argument.źródło
lambda k,l:' '*(len(k)-l)+k
) Wow ... +1 tylko z tego powodu: DPyke, 8 bajtów
Wypróbuj tutaj!
Również 8 bajtów:
Wypróbuj tutaj!
źródło
Pyth -
87 bajtówWypróbuj online tutaj .
źródło
ułożone w stos , 30 bajtów
Wypróbuj online!
11:>
jest w zakresie od0
do10
. Reszta jest raczej oczywista.Inne rozwiązania, które znalazłem:
źródło
Rubinowy, 38 bajtów
źródło
11.times{|i|puts i.to_s(2).rjust 4,?0}
BF , 134 bajty
Jestem pewien, że można to skrócić - to właściwie mój pierwszy golf BF.
Wypróbuj online! Zakłada, że taśma jest nieskończona w obu kierunkach, podobnie jak interpreter w TIO. Tłumacz, w którym
<
na lewym końcu taśmy nie ma operacji, oszczędziłby trzy bajty.Wyjaśnienie
Ponad połowa kodu (dokładnie 77 pierwszych bajtów) jest wydawana na inicjalizację taśmy. Kroki są następujące:
Komórki zainicjowano na
1
przechowywania bitów naszej liczby plus 1:1
reprezentuje bit zerowy i2
reprezentuje jeden bit.Faza inicjalizacji zakończyła się wskaźnikiem na
11
. Teraz używamy tej komórki do uruchomienia 11 iteracji naszej pętli:źródło