Jeśli Ci się spodoba, rozważ udział w:
Wykonaj 12 urywków / wyrażeń w tym samym języku, które dają odpowiednio cyfry od 0 do 10 i 42, ale bez pisania literowych danych liczbowych, łańcuchowych lub znaków.
Wbudowane dane, takie jak PI()
i ALPHABET()
, są w porządku, podobnie jak np. Stałe U, X, Y, Z i A w CJam oraz BLEND, AKORD, CENTRALNY, PRZERWA i LINIE.
Każdy fragment musi być w stanie samodzielnie działać, tzn. Nie może być od siebie zależny. Jednak wewnątrz jednego fragmentu możesz przypisać zmienną i używać jej dowolnie, o ile odwołujesz się do niej bezpośrednio po nazwie, a nie poprzez ciąg znaków zawierający jej nazwę.
Wszystkie fragmenty muszą być poprawne na komputerze osoby przesyłającej w momencie przesyłania (zgodnie z raportem SE), ale nie mogą opierać się na nietypowych lokalnych warunkach, takich jak liczba plików w katalogu, dokładna data lub godzina lub określone dane wprowadzone przez użytkownika .
Przykłady prawidłowych fragmentów
3: INT(LOG10(YEAR(TODAY())))
ponieważ pozostaje prawdą w dającej się przewidzieć przyszłości
4: CUBICROOT(LEN(CHARACTERSET()))
ponieważ zestaw znaków 256 liter jest bardzo powszechny
8: SQRT(SYSTEMTYPE())
ponieważ systemy 64-bitowe są bardzo powszechne
Przykłady nieprawidłowych fragmentów
5: LEN(USERNAME())
ponieważ większość ludzi nie używa „Admin” jako loginu :-)
9: LOG10(SYSTEMMEMORY())
ponieważ działa tylko w systemach z dokładnie 1 GB pamięci
42: CODE("*")
ponieważ zawiera literał ciąg / znak
Wynik każdego fragmentu musi skutkować faktyczną liczbą (wartość, liczba całkowita, liczba zmiennoprzecinkowa itp.), Której można użyć do dalszych obliczeń w tym samym języku co fragment kodu, tj. Nie może to być ciąg tekstowy reprezentujący tę liczbę.
Dozwolone są tylko języki oparte na znakach.
Wynik to łączna liczba bajtów wszystkich 12 urywków łącznie. Nowe linie oddzielające fragmenty nie są liczone.
Pamiętaj, że powyższe zasady mogą uniemożliwić udział niektórych języków, nawet jeśli są one ukończone.
FAQ
P Czy programy mogą akceptować jakiekolwiek dane wejściowe? Tak, ale nie może po prostu poprosić o wejście i wpisać odpowiedni numer.
P Czy dozwolone są cyfry fizyczne (bez danych)? Tak, np .
LOG10()
P Czy symbole w Rubim liczą się jako literały? Tak.
P Czy wynik zawiera znaki nowej linii między każdym fragmentem? No.
P Czy TI-BASIC „oparty na znakach” jest wystarczający, aby był ważny? Tak.
P Czy fałsz i prawda są liczone jako literały liczbowe?
O Nie, są do zaakceptowania.
P Czy możemy użyć literału liczbowego do wywołania funkcji, jeśli jest to jedyny sposób, a liczba nie wpływa na wynik funkcji? Tak, jeśli to jest normalny sposób pisać kod w języku polskim.
P Mój język zakłada, że na początku każdego programu / wyrażenia jest [coś]. Czy muszę to uwzględnić, czy moje fragmenty powinny po prostu działać, jeśli zostaną umieszczone w środku programu / wyrażenia?
A Powinny po prostu działać w środku programu / wyrażenia.
P: Co z literałami regularnymi? Zabronione, z wyjątkiem języków zrobić tylko regexes.
P Czy akceptowalny jest jeden fragment kodu, który mógłby wydrukować wszystkie podane liczby?
O Nie, muszą być one odrębne i wzajemnie niezależne.
P Czy mogę założyć płytę kotłową podobną int main() {}...
lub równoważną? Tak.
P Jakie typy danych wyjściowych są dozwolone?
A Dowolny typ danych liczbowych, taki jak int, float itp.
P Czy muszę wydrukować wynik każdego fragmentu?
O Nie, udostępnienie wyniku do późniejszego wykorzystania wystarczy.
P Czy dozwolone są wstępnie ustawione zmienne?
A Tak i zostaną zresetowane (jeśli zostaną zmienione) dla każdego fragmentu.
P Czy π i e są uważane za literały liczbowe?
A Nie, możesz ich użyć.
P Czy mogę zwrócić 4 i 2 w różnych komórkach dla 42?
O Nie, muszą być połączone jako jeden numer.
Q Bajty lub postacie? Bytes, ale można wybrać dowolną stronę kodową.
P Czy można stosować funkcje stałe i wstępnie ustawione zmienne, takie jak J 9:
, faktycznie 9
i Pretzel 9
?
A Tak, jeśli słownictwo jest skończone (19 dla J, 10 dla Faktycznie i Precla).
Odpowiedzi:
Sześciokąt , 13 bajtów
Wypróbuj online!
W Hexagony,
0
przez9
to funkcje, które mnożą bieżącą pamięć przez 10, a następnie dodają liczbę reprezentowaną przez nazwę funkcji. Dlatego pierwszy fragment jest pusty, ponieważ wspomnienia zaczynają się jako0
.Na przykład, jeśli bieżąca pamięć jest
65
, wykonanie funkcji3
spowoduje utworzenie bieżącej pamięci653
.(Do downvoters: oddaj głos, ile chcesz; jestem gotowy.)
źródło
Funciton , 1222 bajty
Oprócz literałów numerycznych, istnieją dwa sposoby na uzyskanie wartości (dowolnej wartości) w Funciton: wyrażenia stdin i lambda. Stdin jest pojedynczym polem, podczas gdy pełne wyrażenie lambda wymaga większej składni, więc wybieram stdin. Jednakże, chociaż standardowe wejście może być czymkolwiek, wszystkie poniższe czynności działają niezależnie od tego, jaki wkład zostanie podany.
Wszystkie użyte tutaj funkcje biblioteczne istniały przed opublikowaniem wyzwania.
0 (40 bajtów w UTF-16)
Używa surowej składni dla mniej niż. Wartość nigdy nie jest mniejsza niż sama, dlatego wynikiem jest 0.
1 (52 bajty w UTF-16)
⌑
zwraca leniwą sekwencję zawierającą pojedynczy element iɕ
zlicza liczbę elementów. (Leniwa sekwencja jest na tyle leniwa, że ten fragment w ogóle nie ocenia standardowego wejścia!)2 (70 bajtów w UTF-16)
= 2¹.
ʂ
generuje wszystkie podsekwencje sekwencji, a tym samym zamienia sekwencję n elementów w jeden z 2ⁿ.3 (88 bajtów w UTF-16)
= 2 + 1.
♯
zwiększa wartość o 1.4 (88 bajtów w UTF-16)
= 2².
5 (106 bajtów w UTF-16)
= 4 + 1.
6 (106 bajtów w UTF-16)
= 3 silnia.
7 (110 bajtów w UTF-16)
= A (2, 2) (funkcja Ackermanna).
8 (118 bajtów w UTF-16)
= 2 << 2 (shift-left).
9 (128 bajtów w UTF-16)
= 3 × 3.
10 (146 bajtów w UTF-16)
= 5 + 5.
42 (170 bajtów w UTF-16)
= 6 × (6 + 1).
źródło
JavaScript,
144141140138132125123 bajtówZ pomocą @ edc65 , @Sjoerd Job Postmus , @DocMax , @usandfriends , @Charlie Wynn i @ Mwr247 !
źródło
-~-~Math.PI
i-~-~-~Math.PI
zapisać kolejny bajt (dwa razy).(escape+NaN).length
. PS Dzisiaj dowiedziałem się, że JavaScript jest naprawdę dziwny ...NaN
liczy się jako liczba, ale dosłownie nie jest to liczba: PMysz-2002 ,
27261714 bajtówPierwsze fragmenty wypychają 0-10, a następnie
ZR+
wypychają i są .25
17
25 17 + 42 =
1
źródło
int main() {}...
ekwiwalent płyty , który go uruchomi.CJam,
2724 bajtówDzięki @ MartinBüttner za -1 bajtów!
Wypróbuj online!
źródło
Brainfuck, 70 bajtów
Każda linia musi być uruchamiana indywidualnie.
Pierwsze 10 jest oczywiste: zwiększamy wartość komórki za pomocą każdego plusa.
42 jest o wiele bardziej złożony. Opiera się na fakcie, że najbardziej szalony interpreter używa komórek 8-bitowych, co oznacza, że wszystkie operacje na nim są wykonywane modulo 256.
--
Ustawia komórkę od 0 do 254. Następnie wchodzimy do pętli, która biegnie, aż komórka # 0 wynosi 0. Każda iteracja dodaje 1 do komórki nr 1 i dodaje 6 do komórki nr 0. Ta pętla działa 43 razy, więc komórka nr 1 ma 43. Na koniec odejmujemy 1 od komórki nr 1, aby uzyskać 42.Mam najbardziej wydajną 42, jaką kiedykolwiek znaleziono, ze strony http://esolangs.org/wiki/Brainfuck_constants
źródło
Ciemność ,
339303 bajtówTutaj naprawdę świeci Ciemność . Zdobyć? : ~)!
Bez drukowania (zastąpiono spacją
\s
w pierwszym wierszu, ponieważ nie będzie inaczej):Z nadrukiem:
W takim przypadku każda linia musi być uruchamiana osobno, ponieważ program kończy się w świetle (spacja). Można jednak napisać to w jednym lub kilku wierszach tego samego programu.
Regularna ciemność (█) zwiększa rejestr o 1, a instrukcja ■ (pewien rodzaj mini ciemności) wyświetla zawartość rejestru.
źródło
Perl 5,
86757166 bajtówWszystkie
^F
s to dosłowne znaki kontrolne (0x06 w ASCII), a zatem pojedynczy bajt.Dzięki msh210 za zapisanie 11 bajtów i Dom Hastings za 9 bajtów!
źródło
!$[+ord$/ # -1 + 10
- nie rozumiem W wierszu 2 mówisz, że to!$[
daje 1, a nie -1, więc ten fragment daje 11.MATL, 30 bajtów
H
,I
iK
są predefiniowanymi stałymi dla 2, 3 i 4 (jakpi
).O
il
są funkcjami, które zwracają macierz zer (O
) lub jedynek (l
), domyślny rozmiar to 1x1.:
tworzy wektor is
sumuje go, więcK:s
tworzy wektor od 1 do 4 i sumuje go, aby uzyskać 10.Yq
jest n-tą funkcją pierwszą, podobnieKYq
jak 4-ta liczba pierwsza, 7.źródło
Yq
funkcja (i jej implementacja) była bardzo miłą sugestią :-)IK+
działałby równie dobrze dla 7, ale jest to trochę zbyt nudne: PProlog,
11399 bajtówFragmenty:
Łączy stałe matematyczne e i pi na różne sposoby konwertowane na int.
Edycja: Zapisano 14 bajtów, używając liczb zmiennoprzecinkowych dla 0-2.
źródło
PHP,
15714591 bajtówPo raz pierwszy pisząc na Code Golf, pomyślałem, że dam temu szansę. W końcu poprawię się: P Jeśli zobaczysz jakieś oczywiste (dla ciebie) miejsca, w których mógłbym ocalić postacie, daj mi znać.
EDYCJA: Zdałem sobie sprawę, że nie potrzebowałem średników, ponieważ są to tylko fragmenty.
EDIT2: Podziękowania dla Blackhole za wiele sugestii!
źródło
LC_ALL
dla 0 (-1 bajtów),DNS_A
dla 1 (-3 bajtów),LOCK_NB
dla 4 (-3 bajtów),LC_TIME
dla 5 (-7 bajtów),LOG_INFO
dla 6 (-8 bajtów),INI_ALL
dla 7 (-5 bajtów),…IMG_WBMP
Dla 8 (-4 bajtów),SQL_DATE
dla 9 (-9 bajtów),SQL_TIME
dla 10 (-3 bajtów) iLOG_INFO*INI_ALL
dla 42 (-11 bajtów). W ten sposób zaoszczędzono 51 bajtów! Stałe te są poprawne przynajmniej w PHP 5.6.1 w systemie Windows.LC_ALL
jest rzeczą zależną od regionu?setlocale()
do zmiany wszystkich kategorii ustawień regionalnych. Ale wartość samej stałej jest oczywiście niezależna od ustawień regionalnych :).Python 2,
191159158157156149146 bajtówMoje pierwsze zgłoszenie, mam nadzieję, że wszystko mi się udało! Biorąc pod uwagę czas spędzony na tym, wydaje mi się, że dla niektórych z nich jest lepszy.
Wielkie dzięki dla FryAmTheEggman!
źródło
True
jako idiomu dla 1 powinno być dopuszczalne, ponieważ nie wiem, kiedy nie są one równoważne jako fragmenty.True is not 1
ale dla wszystkich obliczeń opartych na 1, pomaga! Edycja teraz.#8 len(`id(id)`)
. Wtedy 8, 9 i 10 będą krótsze. Możesz także dodać hiperłącze, aby wypróbować online .len(`{()}`)
za 11 bajtów, co daje od 7 do 10 krótszych.C #, bez użycia, 234 bajty
To jest o wiele bardziej nudne, niż początkowo myślałem. Miałem dość zróżnicowane pomysły, jak
new[]{true}.Length
itrue.GetHashCode()
itypeof(int).Name.Length
iuint.MinValue
itd., Alenew int()
pokonać je wszystkie.źródło
var a = new int();
a następnie użyća
w każdym fragmencie?using
deklaracji.int a=-~-~new int();a<<a
PowerShell, 147 bajtów
Służą one
+
do niejawnego rzutowania rzeczy na liczby całkowite. Późniejsze numery używają Enums z .NET Framework unerpinnings programu PowerShell, które mają właściwe wartości.-~-~-~
użyte w JavaScript, C # i PHP byłyby- -bnot - -bnot - -bnot
w PowerShell.x^y
x**y
byłoby potęgowanie używane w odpowiedziach Perla lub w Pythonie lub JavaScript ES7[Math]::Pow($x,$y)
stałe e i Pi są znakami ciężkimi
[Math]::E
i[Math]::PI
źródło
x^y
jest xor w JavaScript. JavaScript (ES7) ma**
dla wykładników. ŹródłoDC , 35 bajtów
Aby przetestować fragmenty, dodaj a,
f
aby wydrukować stos i przekazać ten ciąg dodc
:źródło
E
iF
tutaj są cyfry (nawet jeśli są większe niż podstawa wejściowa). Dowodem na to jest to, że łączą się jak cyfry; np.F0
->150
. Możesz zobaczyć to samo zachowanie z cyframi dziesiętnymi po zmianie podstawki wejściowej i wyjściowej.TI-BASIC, 41 bajtów
0 ~ 10:
42:
W TI-BASIC wszystkie niezainicjowane zmienne jednoliterowe zaczynają się od 0, a
Xmax
(prawa granica okna ekranu wykresu) zaczyna się od 10.Stała matematyczna
π
to jeden bajt , alee
dwa bajty.źródło
Python 2,
306275274 bajtówWykorzystałem fakt, że dla dowolnego x (liczba całkowita, a nie 0) wyrażenie
x/x
wynosi 1 i bawiłem się kilkoma bitowymi operacjami.Skorygowałem fragmenty tak, aby nadal spełniały wymagania (dzięki @nimi to zaoszczędziło mi 24 bajty), ale trzeba je ręcznie przetestować. Oto kod i liczba pojedynczych bajtów:
źródło
i=id(id);r=~i/i
Matematyka ++, łącznie 92 bajty
0 (1 bajty):
a
1 (2 bajty):
!a
2 (3 bajty):
_$e
3 (4 bajty):
_$pi
4 (7 bajtów):
_$e+_$e
5 (8 bajtów):
_($e+$e)
6 (9 bajtów):
_$pi+_$pi
7 (8 bajtów):
_($e*$e)
8 (9 bajtów):
_($e*$pi)
9 (10 bajtów):
_($pi*$pi)
10 (12 bajtów):
_$e*_($e+$e)
42 (19 bajtów):
_($pi+$pi)*_($e*$e)
źródło
JavaScript (środowisko przeglądarki),
155136130 bajtówDzięki:
@Ismael Miguel : 155 -> 136 -> 130 bajtów
źródło
-~[]+[]+-[]
do produkcji10
. Zwróci ciąg, ale nadal można go używać jako liczby. Możesz także użyć-~(top+top.s).length
do obliczenia42
(-8 bajtów) i porzucić swoją zależność od Google Chrome. Aby zaoszczędzić więcej 3 bajtów, użyj(P=Math.PI)*P>>+[]
do obliczenia 9.~(~[]+[]+-[])
do wygenerowania9
. To powinno zmniejszyć kilka dodatkowych bajtów.+[12]
daje12
i+[1, 2]
dajeNaN
. Nienawidzę JS[1,2,3]
=>"1,2,3"
i ciągi rzutowane na liczby takie jak"12"
=>,12
ale jeśli w ciągu znajdują się znaki nieliczbowe, rzutowanie powracaNaN
.+[1,2]
rzutuje na ciąg, a następnie liczbę, ale ciąg zawiera przecinek, więc"1,2"
staje sięNaN
.Poważnie,
3933 bajtówW nawiasach podano objaśnienia:
Szesnastkowe zrzuty programów:
Dzięki kwintopii na 6 bajtów!
źródło
HlPD
zapisuje 2 bajty na 42, iQlP
zapisuje bajt na 7, iQlª
zapisuje bajt na 9, iQl╙
zapisuje bajt na 8. Myślę, że Poważnie sprowadza się to do 33 bajtów wszystkich, wiążąc Pytha.dc, 42 bajty
Wyniki
Nie ma wielu sposobów na generowanie nowych liczb za pomocą DC. Używam
O
: baza wyjściowa, początkowo 10;K
: precyzja, początkowo 0;z
głębokość stosu, początkowo 0;Z
znaczące cyfry operandu. Łączymy je ze zwykłymi operatorami arytmetycznymi.Program testowy
źródło
Mathematica, 101 bajtów
Jestem pewien, że niektóre z nich są nieoptymalne. Te zaokrąglone wsporniki są naprawdę drogie.
Dla spójności, pierwsze dwa może być również
E-E
iE/E
oczywiście, ale myślałem, że to całkiem ładne dostać0
i1
od obliczeń z niezdefiniowanych zmiennych.źródło
0
. Jeśli późnieja
otrzyma wartość0
, nie stanowi to problemu, o ile nie jest używana podczasa/a
oceny.Japt ,
343330 bajtów1 bajt zapisany dzięki @ThomasKwa
Oto, co oznaczają poszczególne znaki:
źródło
A-I
to zmienne, które są domyślnie przypisane do różnych liczb, jak pokazano powyżej.A-F
są przypisane do 10-15. Czy to unieważnia te zmienne?Cudowny , 98 bajtów
Nie jest to szczególnie ekscytujące, opiera się na
?n
urządzeniach, które zamieniają dowolny marmur w losową wartość w zakresie 0..n (włącznie) efektem ubocznym jest to, że?0
zamienia każdy marmur w 0 bez względu na wejście. Myślę, że użycie literałów jest dozwolone, ponieważ wartość nie wpływa na wynik i nie ma innego sposobu na wywołanie funkcji raz w Marbelous.0:
1:
...
9:
10:
42:
źródło
> <> , 86 bajtów
ln;
lln;
llln;
lll+n;
lll:+n;
llll+n;
llll++n;
lubllll:+n;
lllll+n;
lllll:+n;
lllll++n;
lubllllll+n;
llll+:+n;
lublll:l+*n;
llll*ll+*n;
Opiera się na wielkości stosu, aby uzyskać jego literały.
źródło
n
każdy z nich, ponieważ funkcje w językach opartych na stosie mogą pozostawić dane wyjściowe na stosie na -11 bajtów.;
sumie 22 bajtów i rozważyć koniec funkcji osiągnięty na końcu linii, ale jest to trochę dwuznaczne, ponieważ><>
nie ma gotowych funkcji.><>
, twoje funkcje muszą zaakceptować pozycję powrotną (x i y) na stosie oprócz ich parametrów, upewnij się, że nie przeszkadzają one podczas wykonywania obliczeń ([
jest to przydatne w tym kontekście), następnie przeskocz do pozycji powrotu po zakończeniu wykonywania. Zrobiłem POC jakiś czas temu, sprawdź to, jeśli jesteś zainteresowany;
. Powodem, dla którego mówię, aby wyjść,;
jest to, że w przeciwnym razie nie ma możliwości oznaczenia, gdy funkcja kończy się bez znaku.
. Wydaje się, że większość ludzi uważa to za uczciwe, ale mogę się tutaj napisać , jeśli jesteś zaniepokojony.><>
fragmentów kodu.
byłoby najlepszym sposobem na trzymanie się definicji funkcji opisanej w najpopularniejszej odpowiedzi w poście, jednak zgadzam się, że;
jest to dobra alternatywa, która wymaga mniej wyjaśnień.Formuły MS Excel,
163151150143 bajtówNie do końca język programowania, ale proszę bardzo ...
PI()
jest używany w większości przypadków, ponieważ jest to krótszy (jestem tego świadom) sposób na wprowadzenie wartości liczbowej bez użycia literału liczbowego lub łańcuchowego.N
konwertuje różne rzeczy (w tym logiczne) na liczby iT
konwertuje różne rzeczy na tekst.TYPE
zwraca 2 dla argumentu tekstowego i 4 dla argumentu boolowskiego.TRUNC
odrzuca część ułamkową (tj. zaokrągla liczby dodatnie w dół),EVEN
zaokrągla w górę do następnej liczby parzystej iODD
zaokrągla w górę do następnej liczby nieparzystej.CODE(-PI())
to kod ASCII pierwszego znaku konwersji na tekst -π, tj. 45 (dla „-”).EDYCJA: Usunięto znaki równości z liczby bajtów (-12!) - jak wskazał Nᴮᶻ w komentarzach, nie należy ich uwzględniać.
EDYCJA 2: Zakładając, że reszta arkusza jest pusta, możliwe jest użycie odwołania do pustej komórki jako zera (ponownie, sugerowane przez Nᴮᶻ) pod warunkiem, że uwzględnimy znak minus (lub użyjemy go w innym wyrażeniu liczbowym), aby rozwiązać niejednoznaczność typu.
źródło
=Z9
=
s, dzięki. Jeśli chodzi o twoją sugestię, celowo uniknąłem odwołań do komórek, aby upewnić się, że formuły są niezależne od zawartości tabeli - jeśliZ9
zawiera tekst,=Z9
nie zwróci już zera. Postanowiłem nie zakładać niczego o stole.Z9
na pustym arkuszu jest pusta wartość, która jest konwertowana0
w wielu przypadkach, ale może być konwertowana na""
(pusty ciąg), jeśli jest używana w niektórych wyrażeniach - podobnie jak niezainicjowany wariant VBA - więc nie jest ściśle równoważny z0
. Na przykład= 0&"a"
jest oceniany,"0a"
ale= Z9&"a"
ocenia"a"
. Można to jednak rozwiązać, dodając-
do odwołania jednoargumentowy (co wymusza numeryczne - znowu, podobnie jak w VBA). Więc-Z9
może być użyte jako zero. Właśnie zaktualizowałem odpowiedź. Dzięki jeszcze raz.DUP , 68 bajtów
Try it here.
Istnieje wiele sposobów, aby to zrobić, ale nadużywam stosu zwrotu dla tego.
Wyjaśnienie
Aby to w pełni zrozumieć, musisz zrozumieć zachowanie DUP dotyczące lambd. Zamiast wypychać samą lambdę do stosu, w rzeczywistości wykrywa ona lambda na stosie, kiedy to wykryje. To może wyjaśnić pierwsze 3 fragmenty, które dotyczą lambd.
Następne fragmenty używają stosu zwrotnego. Po
!
wykonaniu bieżący adres IP jest wypychany do stosu zwrotnego, a górna część stosu jest ustawiana jako nowy adres IP w celu rozpoczęcia wykonywania lambda.)
wyskakuje liczba ze stosu zwrotnego na stos danych.To wystarczy, aby wyjaśnić resztę fragmentów. Jeśli nadal go nie masz, pamiętaj, że Stepprzycisk jest całkiem przydatny!
źródło
05AB1E,
403824 bajtówźródło
Y·
jest bardziej czysty niż stosuYx
,X
może być stosowany zamiastº
tutaj (Domyślnie jest to1
,º
znaczylen(stack)>1
, więc nie zalega do niczego). Ponadto liczba bajtów wynosi 24, a nie 35 (CP-1252, znaki nowej linii nie liczą się, jeśli są osobnymi fragmentami).₆t
teraz (push 36, pierwiastek kwadratowy), aby zapisać bajt ( Wypróbuj online ).D1ffe7e45e , 112
Każda linia to inny fragment kodu.
Liczby w programie nie liczą się jako literały liczbowe, ponieważ są używane tylko jako polecenia.
Ostatnią można zdecydowanie pograć w golfa.
EDYCJA: Mam tłumacza działającego i wszystkie fragmenty działają. Jeśli chcesz sam sprawdzić, dodaj
0f0f
fragment kodu, aby program się zakończył.źródło
+
w Brainf ** k). Pomyślałem, że skoro są one używane jako polecenia, a nie literały liczbowe, nadal się liczyły. Usunę odpowiedź, jeśli nie będzie.Pyth,
353433 bajtów-1 bajt @Mimarik
Istnieje kilka możliwości dla niektórych programów.
0, 1 bajt
1, 2 bajty
2, 3 bajty
3, 3 bajty
4, 3 bajty
5, 4 bajty
6, 3 bajty
7, 4 bajty
8, 3 bajtów
9, 2 bajty
10, 1 bajt
42, 4 bajty
Wszystkie one obejmują albo podstawowe polecenia double (
y
), +1 (h
) i -1 (t
), albol
(długość łańcucha). Zmienna Z jest inicjowana do zera.Dla 5
b
jest inicjowany znakiem nowej linii. Backtick daje"\n"
(łącznie z cudzysłowami, a długość tego ciągu wynosi 4.Wypróbuj je tutaj !
źródło
yhyT
. (Odrzuciłem edycję zgodnie z meta.codegolf.stackexchange.com/questions/1615 / ... )