To jest powtórka z Evolution „Hello World!” , Pierwotnie napisanej przez użytkownika Helkę Homba
Nie należy go zamykać jako duplikatu, z powodu meta konsensusu tutaj .
Oryginał został zapytany ponad dwa lata temu i był ostatnio aktywny ponad sześć miesięcy temu. Mam zgodę Helki Homba na opublikowanie tego tutaj
Od czasu powstania oryginału wymyślono wiele języków, a wiele osób dołączyło do witryny, którzy nigdy nie mieli okazji odpowiedzieć na oryginał, więc uważam, że ten post jest akceptowalny.
Wyzwanie polega na stworzeniu programu, który drukuje 2^n
na standardowe wyjście, gdzie n
jest numer twojego programu. Problem polega na tym, że twój program musi mieć odległość Levenshteina 10 lub mniej od programu w odpowiedzi przesłanej przed tobą.
Jak to będzie działać
Poniżej prześlę pierwszą odpowiedź za pomocą C #, który drukuje 2 ^ (n = 1) = 2
.
Następna osoba, która chce odpowiedzieć, musi zmodyfikować kod, używając do 10 pojedynczych znaków, usunięć lub podstawień, aby po uruchomieniu w języku nowej odpowiedzi drukował 2^n
(podając n
numer odpowiedzi). Na przykład 25. odpowiedź (powiedzmy, że jest w Pyth) wypisuje 2 ^ 25 lub 33554432.
Będzie to trwało, dopóki wszyscy nie utkną, ponieważ nie ma nowego języka, w którym można uruchomić program z ostatnią odpowiedzią, zmieniając tylko 10 znaków. Wspólnym celem jest sprawdzenie, jak długo możemy to utrzymywać, więc staraj się nie dokonywać żadnych niejasnych lub nieuzasadnionych edycji postaci (nie jest to jednak wymagane).
Formatowanie
Sformatuj swój post w następujący sposób:
#Answer N - [language]
[code]
[notes, explanation, observations, whatever]
Gdzie N jest liczbą odpowiedzi (zwiększa się stopniowo, N = 1, 2, 3, ...).
Nie musisz mówić, które dokładnie znaki zostały zmienione. Upewnij się tylko, że odległość Levenshteina wynosi od 0 do 10.
Jeśli odpowiesz w jakimś języku lub otrzymany kod jest po prostu bałagan, nie proszę wyjaśnić co zrobiłeś i dlaczego to działa, choć nie jest to wymagane.
Zasady
Kluczową rzeczą do zrozumienia w tym wyzwaniu jest to, że tylko jedna osoba może odpowiedzieć na raz, a każda odpowiedź zależy od poprzedniej .
Nigdy nie powinny być dwie odpowiedzi z tym samym N. Jeśli dwie osoby jednocześnie odpowiedzą na niektóre N, ten, który odpowiedział później (nawet jeśli jest to różnica kilku sekund), powinien uprzejmie usunąć swoją odpowiedź.
Ponadto...
- Użytkownik nie może przesłać dwóch odpowiedzi z rzędu. (np. odkąd przesłałem odpowiedź 1, nie mogę odpowiedzieć 2, ale mógłbym zrobić 3)
- Staraj się unikać publikowania zbyt wielu odpowiedzi w krótkim czasie.
- Każda odpowiedź musi być w innym języku programowania.
- Możesz używać różnych głównych wersji języka, takich jak Python 2/3
- Języki liczą się jako odrębne, jeśli są tradycyjnie nazywane dwoma różnymi nazwami. (Mogą występować tu pewne niejasności, ale nie pozwól, aby zrujnowało to konkurs).
- Nie musisz trzymać się ASCII, możesz użyć dowolnych znaków. Odległość Levenshteina będzie mierzona w znakach Unicode .
- Wyjście powinno być tylko
2^n
i bez innych znaków. (Wiodące / końcowe białe znaki są w porządku, podobnie jak nieprzekraczalne dane wyjściowe, takie jak>>>
lubans=
) - Jeśli twój język nie ma standardowego użycia, użyj tego, co jest powszechnie używane do szybkiego generowania tekstu (np.
console.log
Lubalert
w JavaScript). - Kiedy moc dwóch, które musisz wyprowadzić, staje się bardzo duża, możesz założyć nieskończoną pamięć, ale nie nieskończoną liczbę całkowitą. Uważaj na przepełnienia liczb całkowitych.
- Możesz skorzystać z notacji naukowej lub dowolnego języka w najbardziej naturalny sposób reprezentowania liczb. (Z wyjątkiem unarnych, NIE wysyłaj w unarnych)
Upewnij się, że twoja odpowiedź jest poprawna. Nie chcemy zdawać sobie sprawy, że jest przerwa w łańcuchu pięciu odpowiedzi w górę. Nieprawidłowe odpowiedzi należy szybko naprawić lub usunąć, zanim pojawią się dodatkowe odpowiedzi.
Nie edytuj odpowiedzi, chyba że jest to absolutnie konieczne.
Punktacja
Gdy wszystko się uspokoi, wygrywa użytkownik, który prześle najwięcej (poprawnych) odpowiedzi. Remisy trafiają do użytkownika z największą liczbą głosów.
Edytuj je po opublikowaniu odpowiedzi:
Tabela liderów
13 języków
Okx
8 języków
zepelin
4 języki
Pavel
Jonathan Allan
Kritixi Lithos
Riker3 języki
Bobobak
2 języki
bmarks
Conor O'Brien
zniszczalne arbuz
OVS
Tom Carpenter1 język
ATaco
Blocks
Dennis
dzaima
Erik the Outgolfer
ETHproductions
ghosts_in_the_code
Leo
Lynn
Matheus Avellar
Nathaniel
Qwerp-Derp
R. Kap
Taylor Scott
nimi
Mistah Figgins
PidgeyUsedGust
steenbergh
Języki używane do tej pory:
- C # (Pavel)
- /// (boboquack)
- Retina (Dennis)
- Galaretka (Jonathon Allan)
- Pyth (boboquack)
- > <> (Zniszczalny Arbuz)
- Minkolang (Kritixi Lithos)
- Perl (Pavel)
- Python (Qwerp-Derp)
- dc (R. Kap)
- Węgiel (Jonathon Allan)
- Self Modifying BrainFuck (Leo)
- SOGL (dzaima)
- ShapeScript (Jonathon Allan)
- Pyke (Boboquack)
- Ruby (Nathaniel)
- 05AB1E (ovs)
- STATA (znaczniki)
- bc (Kritixi Lithos)
- Japt (Okx)
- 2sable (Kritixi Lithos)
- Cheddar (Jonathon Allan)
- Pylony (Okx)
- Bash (zeppelin)
- Pushy (Okx)
- CJam (Erik the Outgolfer)
- MATL (Okx)
- MATLAB (Tom Carpenter)
- Oktawa (Kritixi Lithos)
- R (ovs)
- JavaScript ES7 (Tom Carpenter)
- Wypukły (Okx)
- Matematyka (ghosts_in_the_code)
- Pip (Okx)
- Ułożone (Conor O'Brien)
- GolfScript (Okx)
- Właściwie (Lynn)
- RProgN (Okx)
- Schemat (oznaczenia)
- Element (Okx)
- J (bloki)
- Cubix (produkty ETH)
- zsh (zeppelin)
- VBA (Taylor Scott)
- Ryba (Zeppelin)
- Siatka (Okx)
- Perl 6 (Pavel)
- RProgN2 (ATaco)
- PHP (Matheus Avellar)
- Jolf (Conor O'Brien)
- Haskell (nimi)
- Befunge-98 (Mistah Figgins)
- Gnuplot (zeppelin)
- QBIC (steenbergh)
- FOG (Riker)
- Qwerty-RPN (Okx)
- Korn Shell (ksh) (zeppelin)
- Julia (Riker)
- Python 3 (Pavel)
- Vimscript (Riker)
- Dash (zeppelin)
- Vitsy (Okx)
- csh (zeppelin)
- Ohm (Okx)
- Bosh (Zeppelin)
- es-shell (Riker)
- Gol> <> (PidgeyUsedGust)
To pytanie działa najlepiej, gdy sortujesz według najstarszych .
Odpowiedzi:
Odpowiedź 64, Ohm , odległość 10
Dodany
64º,;S)1'a
Tylko
64º,
rzeczywisty kod, reszta to tylko śmieci.Ten program wydrukuje poprawne wyjście, ale poprosi również o kilka
STDIN
po wydrukowaniu 2 64 .źródło
Odpowiedź 17: 05AB1E , odległość 3
Wypróbuj online!
źródło
05AB1E
nie rzuca błędów.Odpowiedź 24: Bash, dystans 8
Wypróbuj online!
źródło
Odpowiedź 51, Haskell, odległość 10
Usuń 2 NL, wymienić
^
na początku u-
, prepend inny-
, usuń*
obrębieprint
wymienić 2nd*
z^
, nadpisywania49
z51
, wkładki--
po druku.źródło
--
, więc jest to mniejsza odległość edycji niż--
dwukrotne dodawanie .--
ma 2 bajty, usuwając NL tylko 1Odpowiedź 67, Gol> <> , odległość 6
Używamy trampoliny,
#
aby po prostu dołączyć kod w odwrotnej kolejności. Usuwając mogą być ponownie wykorzystane, potrzebując tylko 6 znaków do dodania.S)1'a
;
Wypróbuj online!
Wydaje mi się, że zachowanie
#
pozwala na używanie niektórych języków jako komentowanego wiersza.źródło
Odpowiedź 4: Odległość galaretki 3
Wypróbuj online!
wszystkie wstawki:
00Ḥ
.0{
i0}
są tam, aby ukryć błędy parsowania (wyskakują z pustej listy z powodu{
i}
są szybcy, którzy zamieniają monady w diady, używając odpowiednio lewego i prawego argumentu).Ḥ
„unhalves” 8, aby uzyskać 16.źródło
{
(poclass HelloWorld
) nie potrzebuje0
przed nim, a pozostałe dwa tak?()
drugiego otwartego nawiasu klamrowego w pierwszym wierszu. Trzecia linia nie może zaczynać się od nawiasu klamrowego, ponieważ nie ma monady, na której można by działać.Odpowiedź 5: Pyt
Drukuje literał liczbowy
32
, a następnie odstęp między2
i"
tłumi drukowanie (automatycznie uzupełnianego) ciągu literału.+4 znaki -
32 "
Wypróbuj na herokuapp
źródło
Odpowiedź 6 -> <>
zastąpił spację znakiem „, kod wypycha 3, 2, 4, następnie odwraca, wypycha 4,2,3, a następnie wyskakuje 3 ze stosu i mnoży 2, 4, 4, 2 dla 64, wysyła go i zatrzymuje
Wypróbuj online
może użyć https://www.fishlanguage.com/playground
źródło
Odpowiedź 3: Siatkówka , odległość 3
Dołączono
|\n8
(odległość 3).Wypróbuj online!
źródło
Odpowiedź 20: Japt, odległość 8
Wypróbuj online!
Modyfikacje:
Zmienił
2^19
się2**20
na początku programu, aby obliczyć moc (4)Zastąpione
#
ze$
na pierwszej linii, tak że wszystko przeszłość jest interpretowana jako JS (1)W ostatnim wierszu usunąłem
/
i dodałem a*/
na końcu programu, więc komentarz zajmuje cały program (3)źródło
Odpowiedź 27: MATL, odległość 4
Wypróbuj online!
Dodany
27W%
Wyjaśnienie:
źródło
Odpowiedź 50: Jolf, dystans 10
Wypróbuj tutaj!
Przygotowane
^2@2(
(+5)Usunięte
±
iß
z#ß6904±r
(+2)Usunięto
ó
zóout
(+1)Usunięto
<?
z<?#"#28@P2*
(+2)Razem: 10. Usuń wszystkie znaki spoza ASCII!
Wyjaśnienie
(
przestaje analizować, więc kod wygląda następująco:źródło
Odpowiedź 52. Befunge-98 , odległość 8 + 2
Dzięki @DestructibleWatermelon za grę w golfa w bajcie!
Wypróbuj online!
Dodano
'3k
przed2
, oraz'2k*.
pomiędzy2
i@
.--
nic nie robi,'3k2
kładzie 52 2s na stosie,'2k*.@
mnoży je, drukuje liczbę i wychodziDodałem też
d"
po,printf("%
aby ułatwić życie innym ludziom, ponieważ miałem 2 dodatkowe postacie. Nie wpływa na program Befunge-98.źródło
Odpowiedź 42: Cubix , odległość 8
Wypróbuj online!
Środek
lert(2**31
został zmieniony na44******O@
.źródło
Odpowiedź 60, Vimscript, dystans 10
Zmieniono 2
#
na początku środkowych dwóch linii na"
, dodano a"
przed pierwszą linią i:py<space>
przed ostatnią linią.Dla wyjaśnienia:
"
jest komentarzem linii w vimscript (przynajmniej na początku linii) i nie musi być dopasowywany.Vim może uruchomić kod Pythona, więc jest to tak naprawdę równoważne z pytaniem Pythona o odpowiedź.
źródło
Odpowiedź 8: Perl
Dokładnie odległości 10: +4
#
dla komentarzy, +1 przełamane poSystem.Console.
, +3 do przekształcaniawrite
sięprint
, +2 do toczenia2
się256
.Nie zamierzałem brać udziału, ale chciałem się upewnić, że dodane zostaną jakieś regularne języki, zanim coś stanie się zbyt szalone.
Wypróbuj online!
źródło
Odpowiedź 49: PHP, odległość 6
Dodano
<?
i?>
odpowiednio otwierają i zamykają tagi PHP.Zastąpione
48
z49
.#
rozpoczyna komentarz na temat PHP, więc nic nie jest brane pod uwagę opróczOto zrzut ekranu z poprawnym składniowym poprawieniem składni i danymi wyjściowymi, aby pomóc w wizualizacji:
źródło
Odpowiedź 2: ///
+4 znaki -
///4
Wypróbuj online!
źródło
Different versions of the same language count as the same language.
sama lista „Python” w sekcji „Użyte języki ...” wydaje się wystarczająca.Odpowiedź 7: Minkolang , Dystans: 4
Wypróbuj online!
Dodałem
7;N.
do programu. Zasadniczo3
,2
i7
są wypychane na stosie, a następnie 2 podwyższa się do siódmej potęgi użyciem;
. Jest on następnie wyprowadzany jakoN
umber, a następnie program zatrzymuje się na.
źródło
Odpowiedź 11: Węgiel drzewny , odległość 5
Wypróbuj online!
Wielkie litery greckie
A
iβ
są zmiennymi, którym przypisano następujące znaki ASCII. Ostateczna wartość jest domyślnie drukowana.źródło
10
? Mój był 10. odpowiedzią.⎚
(jasne), będzie on krótszyOdpowiedź 10: dc , odległość 5
Oto poprawny
dc
program, który wyświetla dane wyjściowe1024
.Wypróbuj online!
źródło
Odpowiedź 12: Samo-modyfikujące Brainfuck
Wypróbuj online!
SMBF jest jak pieprzenie mózgu, z tym że kod źródłowy jest dostępny na taśmie po lewej stronie pozycji początkowej. Tutaj mamy numer do wydrukowania na odwrocie na końcu kodu i robimy
<.
cztery razy, aby wydrukować wszystkie cztery cyfry.Dodałem
<
przed każdym.
w kodzie (było ich 3), dodatkowy<.
i zmodyfikowałem ostateczną liczbę. Odległość powinna wynosić 8.źródło
Odpowiedź 29: Oktawa , Dystans: 1
Wypróbuj online!
Wszystko, co musiałem zrobić, to zmienić
28
na29
źródło
Odpowiedź 31: JavaScript ES7, odległość 7
ES7 wspiera
**
operatora w zakresie zasilania.Możesz spróbować online tutaj .
źródło
Odpowiedź 33: Matematyka, odległość 9
Wyjaśnienie
Umieszcza wszystko w komentarzach i wyjściach 2 ^ 33
Sprawdź, czy ta odpowiedź jest prawidłowa, zanim umieścisz własną, ponieważ jestem nowy i nie chcę przerywać łańcucha.
źródło
Odpowiedź 37: Właściwie odległość 7
Zastąpione
36?#
z:37@ⁿ.ó
.Wypróbuj online!
źródło
Odpowiedź 38: RProgN, odległość 10
Wypróbuj online!
Zastąpione
2:37
z2 38 ^ exit
(10) (uwaga na spacją)Wyjaśnienie:
źródło
Odpowiedź 47: Perl 6 , odległość 10
Perl 6 jest uważany za odrębny od Perla. Próbowałem ustawić C w dalszej części drogi, dodając
"%
późniejprintf
, mam nadzieję, że ktoś tego używa.Wypróbuj online!
źródło
Odpowiedź 48: RProgN2 , odległość 9
Dodano
"
na początku, który zatrzymał wszystko od zepsucia,[[[
na końcu czyści pamięć i268*^
oblicza nową odpowiedź. Wydrukowano w sposób dorozumiany.Wypróbuj online!
źródło
Odpowiedź 66, es (powłoka) +
bc
, odległość 8Zmieniono
exit
naquit()
i dodanoiker
po pierwszymr
. Nie mogłem się oprzeć i chciałem dodać 4 kolejne postacie.źródło