Czy to jest parzyste czy dziwne?


65

Uwaga: Nie było jeszcze testu waniliowego testu parzystości (istnieje C / C ++, ale nie pozwala na używanie języków innych niż C / C ++, a inne języki inne niż waniliowe również są w większości zamknięte), więc piszę jeden.

Biorąc pod uwagę dodatnią liczbę całkowitą, wypisz jej parzystość (tj. Jeśli liczba jest nieparzysta lub parzysta) w wartościach prawda / fałsz. Możesz wybrać, czy prawdziwe wyniki odpowiadają parzystym, czy nieparzystym wejściom.


Przykłady

Zakładając, że prawda / fałsz są parzyste i nieparzyste (nie jest to wymagane, możesz użyć innych wartości Truthy / Falsy dla każdej), odpowiednio:

(Input):(Output)
1:False
2:True
16384:True
99999999:False

Tabela liderów


2
Nie po raz pierwszy pomyliłem matematykę z parzystością obliczeniową ... w końcu jest to strona kodowa !
Neil

Ponieważ jest to właściwie jedno z tych ( 1 , 2 , 3 ) pytań, prawdopodobnie powinien zawierać fragment, aby zobaczyć wszystkie odpowiedzi.
fəˈnɛtɪk

4
@MikeBufardeci Ponieważ „katalog” jest pisany inaczej w zależności od kraju, z którego pochodzisz. Dla nas w USA jest to „katalog”. „Tabela liderów” jest niezmienna w kulturze.
mbomb007

2
@tuskiomi Wyzwanie dotyczy tylko dodatnich liczb całkowitych. (0 jest uważane za parzyste, ale nie dodatnie)
Calvin's Hobbies

3
@LucioCrusca Witamy w PPCG! Podstawową ideą Code Golf jest stworzenie programu w najkrótszej możliwej formie. Wyzwaniem jest odczytanie liczby całkowitej (dodatnia, niezerowa) i wyprowadzenie, jeśli jest parzysta lub nieparzysta. Jeśli jesteś z czymś pomylony, odwiedź The Nineteenth Byte i zapytaj swobodnie. Lub jeśli jesteś mylony z zasadami lub zasadami witryny, przejdź do Meta . Wreszcie, dziękuję za subskrypcję naszej społeczności!
Matthew Roh

Odpowiedzi:


112

ArnoldC , 299 283 bajtów

IT'S SHOWTIME
HEY CHRISTMAS TREE i
YOU SET US UP 0
GET YOUR ASS TO MARS i
DO IT NOW
I WANT TO ASK YOU A BUNCH OF QUESTIONS AND I WANT TO HAVE THEM ANSWERED IMMEDIATELY
GET TO THE CHOPPER i
HERE IS MY INVITATION i
I LET HIM GO 2
ENOUGH TALK
TALK TO THE HAND i
YOU HAVE BEEN TERMINATED

To wyjście 1(co jest prawdą) dla nieparzystych danych wejściowych i 0(co jest fałszem) dla parzystych danych wejściowych.

Wypróbuj online!

Teraz to jest plan ” (próba wyjaśnienia)

Kod odczytuje dane wejściowe do zmiennej i, zastępuje je wynikiem modulo 2, a następnie drukuje.

IT'S SHOWTIME                                    # BeginMain
HEY CHRISTMAS TREE i                             #   Declare i
YOU SET US UP 0                                  #   SetInitialValue 0
GET YOUR ASS TO MARS i                           #   AssignVariableFromMethodCall i
DO IT NOW                                        #   CallMethod
I WANT TO ASK YOU ... ANSWERED IMMEDIATELY       #   ReadInteger
GET TO THE CHOPPER i                             #   AssignVariable i
HERE IS MY INVITATION i                          #     SetValue i (push i on the stack)
I LET HIM GO 2                                   #     ModuloOperator 2
ENOUGH TALK                                      #   EndAssignVariable
TALK TO THE HAND i                               #   Print i
YOU HAVE BEEN TERMINATED                         # EndMain

27
Moja pierwsza odpowiedź ArnoldC!
Luis Mendo

16
BULLSHIT YOU HAVE NO RESPECT FOR LOGIC GET TO THE CHOPPER
Magic Octopus Urn

17
GET YOUR ASS TO MARS...Brak mi słów.
Matthew Roh

12
Dołączyłem do tej społeczności, aby głosować za tym. Dobra robota, proszę pana
Erik

2
Dołączyłem do tej społeczności, aby również zagłosować za tym postem. :)
Vada Poché

46

pieprzenie mózgu , 8 bajtów

+[,>,]<.

Dane wejściowe są jednostkowe. Wyjście to 1 (prawda) dla liczb nieparzystych i NUL (fałsz) dla liczb parzystych.

Wypróbuj online!

Jak to działa

Zaczynamy od zwiększenia bieżącej komórki, +aby móc przejść do pętli while [,>,].

W każdej iteracji ,odczytuje bajt ze STDIN, >przesuwa się do komórki po prawej, a następnie ,odczytuje kolejny bajt ze STDIN. Kiedy dane wejściowe zostaną wyczerpane, interpreter (w każdym razie ten na TIO) ustawi komórkę na NUL . Kiedy to się stanie, warunek pętli while nie jest już spełniony i my się z niego wydostajemy.

Niech n będzie wejściową liczbą całkowitą. Jeśli jest parzysta liczba bajtów wejściowych - tzn. Jeśli n jest parzyste - pierwsze iteracje n / 2 będą czytały dwa 1 -y, a następne iteracje będą czytały dwa NUL , pozostawiając taśmę w następujący sposób.

...   1  NUL  NUL
...  49    0    0
                ^

<.przenosi jedną komórkę i drukuje jej zawartość, wysyłając bajt NUL do STDOUT.

Jeśli jednak jest nieparzysta liczba bajtów wejściowych, pierwsze (n - 1) / 2 iteracje będą czytały dwa 1 , a następne iteracje będą czytały jeden 1 i jeden NUL , pozostawiając taśmę w następujący sposób.

...   1    1  NUL
...  49   49    0
                ^

<spowoduje teraz powrót do komórki zawierającej bajt / znak 1 , który .drukuje.


34

Mathematica, 4 bajty

OddQ

Daje Truedla nieparzystych danych wejściowych i Falsedla parzystych danych wejściowych, kto wiedział?

Jest też EvenQ, ale kto chciałby to wszystko wpisać?


22
O nie. wbudowane ponownie.
Matthew Roh

7
@SIGSEGV To dla ciebie Mathematica. ;)
Kevin Cruijssen

6
2∣#&działa również
Kelly Lowder

1
@ KellyLowder prawda, ale to 6 bajtów.
Martin Ender

Dlaczego nazwa kończy się na Q?
Cyoce,

26

Taxi , 1482 1290 1063 1029 1009 bajtów

Nigdy wcześniej nie pisałem programu w Taxi i jestem nowicjuszem w programowaniu dla ogółu, więc są prawdopodobnie lepsze sposoby na załatwienie tego. Sprawdziłem błędy i udało mi się trochę zagrać w golfa, próbując różnych tras, które mają ten sam wynik. Z zadowoleniem przyjmuję wszelkie poprawki.

Zwraca 0za parzyste i 1nieparzyste.

Go to Post Office:w 1 l 1 r 1 l.Pickup a passenger going to The Babelfishery.Go to The Babelfishery:s 1 l 1 r.Pickup a passenger going to Divide and Conquer.2 is waiting at Starchild Numerology.Go to Starchild Numerology:n 1 l 1 l 1 l 2 l.Pickup a passenger going to Divide and Conquer.Go to Divide and Conquer:e 1 l 2 r 3 r 2 r 1 r.Pickup a passenger going to Cyclone.Go to Cyclone:e 1 l 1 l 2 l.Pickup a passenger going to Trunkers.Pickup a passenger going to Equal's Corner.Go to Trunkers:s 1 l.Pickup a passenger going to Equal's Corner.Go to Equal's Corner:w 1 l.Switch to plan "b" if no one is waiting.Pickup a passenger going to Knots Landing.Go to Knots Landing:n 4 r 1 r 2 r 1 l.[a]Pickup a passenger going to The Babelfishery.Go to The Babelfishery:w 1 l.Pickup a passenger going to Post Office.Go to Post Office:n 1 l 1 r.[b]0 is waiting at Starchild Numerology.Go to Starchild Numerology:n 1 r.Pickup a passenger going to Knots Landing.Go to Knots Landing:w 1 r 2 r 1 r 2 l 5 r.Switch to plan "a".

Wypróbuj online!

Masz rację, to okropnie czytać bez łamania linii. Oto sformatowana wersja:

Go to Post Office:w 1 l 1 r 1 l.
Pickup a passenger going to The Babelfishery.
Go to The Babelfishery:s 1 l 1 r.
Pickup a passenger going to Divide and Conquer.
2 is waiting at Starchild Numerology.
Go to Starchild Numerology:n 1 l 1 l 1 l 2 l.
Pickup a passenger going to Divide and Conquer.
Go to Divide and Conquer:e 1 l 2 r 3 r 2 r 1 r.
Pickup a passenger going to Cyclone.
Go to Cyclone:e 1 l 1 l 2 l.
Pickup a passenger going to Trunkers.
Pickup a passenger going to Equal's Corner.
Go to Trunkers:s 1 l.
Pickup a passenger going to Equal's Corner.
Go to Equal's Corner:w 1 l.
Switch to plan "b" if no one is waiting.
Pickup a passenger going to Knots Landing.
Go to Knots Landing:n 4 r 1 r 2 r 1 l.
[a]Pickup a passenger going to The Babelfishery.
Go to The Babelfishery:w 1 l.
Pickup a passenger going to Post Office.
Go to Post Office:n 1 l 1 r.
[b]0 is waiting at Starchild Numerology.
Go to Starchild Numerology:n 1 r.
Pickup a passenger going to Knots Landing.
Go to Knots Landing:w 1 r 2 r 1 r 2 l 5 r.
Switch to plan "a".

Oto moja najlepsza próba wyjaśnienia logiki:

Go to Post Office to pick up the stdin value in a string format.
Go to The Babelfishery to convert the string to a number.
Go to Starchild Numerology to pickup the numerical input 2.
Go to Divide and Conquer to divide the two passengers (stdin & 2).
Go to Cyclone to create a copy of the result.
Go to Trunkers to truncate the original to an integer.
Go to Equal's Corner to see if the two passengers are the same.
Equal's Corner returns the first passenger if they're the same (no .5 removal so the stdin was even) or nothing if they're not.
If nothing was returned, it was odd, so go pick up a 0 from Starchild Numerology.
Go to Knots Landing to convert any 0s to 1s and all other numbers to 0s.
Go to The Babelfishery to convert the passenger (either a 1 or 0 at this point) to a string.
Go to Post Office to print that string.
Try and fail to go to Starchild Numerology because the directions are wrong so the program terminates.

Nie wraca do taksówki garaży powoduje wyjście na stderr ale jestem w porządku z tym .


7
Zawsze dowiedziałem się, że goto jest złe
aross

2
Język wymaga nie tylko szerokiego użycia go, ale jedyną metodą rozgałęziania jest użycie planów, które są po prostu inną nazwą goto.
Inżynier Toast

23

Siatkówka , 8 bajtów

[02468]$

Odpowiedź siatkówki na dane dziesiętne. Jest to również proste rozwiązanie wyrażenia regularnego, które działa w prawie każdym smaku wyrażenia regularnego. Dopasowuje (i drukuje 1) dla parzystych danych wejściowych i nie pasuje (i drukuje 0) dla nieparzystych danych wejściowych.

Wypróbuj online!

Alternatywa, także dla 8 bajtów, wykorzystuje etap transliteracji, aby zmienić wszystkie cyfry parzyste na xpierwsze (ponieważ etapy transliteracji mają wbudowane cyfry parzyste / nieparzyste):

T`E`x
x$

Oczywiście najkrótszy format wejściowy (nawet krótszy niż jednoargumentowy ) byłby binarny w tym przypadku, gdzie wystarczyłoby proste wyrażenie regularne 0$. Ale ponieważ wyzwanie polega zasadniczo na znalezieniu najmniej znaczącej cyfry binarnej, dane binarne wydają się omijać rzeczywiste wyzwanie.


1
+1 dla „TeX”. Sprawia, że ​​chcę zobaczyć odpowiedź LaTeX ...
Brevan Ellefsen

@Richard A zatem nie jest to poprawny wpis, który należy obsłużyć. (Chociaż tak naprawdę oznacza to, że i tak jest poprawnie obsługiwane).
Martin Ender


20

LOLCODE, 67 bajtów

HOW DUZ I C YR N
  VISIBLE BOTH SAEM MOD OF N AN 2 AN 0
IF U SAY SO

Funkcja, która zwraca WIN(prawda), jeśli liczba jest parzysta, w przeciwnym razie (nieparzysta) zwróci FAIL(fałsz).

Zadzwoń z C"123".


20

MATL , 5 3 bajtów

Ponieważ wbudowane są nudne

:He

Daje to macierz niezerowych wartości (co jest zgodne z prawdą) dla parzystych danych wejściowych i macierz z zerą w prawym dolnym wejściu (co jest fałszem) dla nieparzystych danych wejściowych.

Wypróbuj online! Kod stopki toif-elsegałąź ilustrująca prawdziwość lub fałszowanie wyniku. Usunięcie tej stopki spowoduje niejawne wyświetlenie macierzy.

Wyjaśnienie

Rozważ dane wejściowe 5jako przykład

:     % Implicitly input n. Push row vector [1 2 ... n]
      % STACK: [1 2 3 4 5]
He    % Reshape into a 2-row matrix, padding with zeros if needed
      % STACK: [1 3 5;
                2 4 0]

7
„Wbudowane są nudne” HeAA, HeAA, HeAA. (Przepraszam, że to była kiepska gra słów)
Matthew Roh

3
@SIGSEGV HeHeHe
Luis Mendo

2
Sprytne podejście! :)
Stewie Griffin

17

Java 8, 8 bajtów

n->n%2<1

Wypróbuj tutaj.

Java 7, 30 bajtów

Object c(int n){return n%2<1;}

Wypróbuj tutaj.

Wyjścia truedla liczb parzystych i falsenieparzystych


Jeśli 1/0byłoby dozwolone zamiast true/false( nie jest, biorąc pod uwagę liczbę głosów tutaj ):

  • Java 8 (6 bajtów): n->n%2
  • Java 7 (25 bajtów): int c(int n){return n%2;}

22
Gdzie są wszystkie absurdalnie pełne gadżety Java? Wydaje mi się, że jest to co najmniej 50 bajtów za krótko ...
Stewie Griffin

2
Dawno, dawno temu istniał tag o nazwie trolling kodu . Ale ta jest bardzo miłą, zaakceptowaną odpowiedzią Java, a tutaj jest odpowiedź na golfa . I jeszcze trochę .
Stewie Griffin

2
@lukeg Cześć, domyślnie jest to program lub funkcja , chyba że wyzwanie stanowi inaczej. Co oznacza, że ​​języki takie jak Java i C # mogą publikować tylko funkcję (i wymagany import) zamiast całej klasy. Jeśli pytający zapytałby konkretnie o program, to naprawdę muszę dołączyć kod graniczny, taki jak klasa / interfejs i metoda główna.
Kevin Cruijssen

1
@lukeg Jeśli chcesz sam zacząć odpowiadać na wyzwania, oto kilka wskazówek dotyczących gry w golfa w Javie, które mogą być interesujące do przeczytania. Witamy w PPCG! :)
Kevin Cruijssen

6
@StewieGriffin Proszę bardzo! int o(int n){return java.util.stream.IntStream.of(n).map(n->n%2).filter(n==0).fi‌​ndAny().isPresent();‌​}
Olivier Grégoire

16

Piet, 15 kodów / 16 bajtów

Source Code

5njaampjhompppam

Tłumacz online dostępny tutaj.

Ten program zwraca 0, jeśli wejście jest parzyste, a 1, jeśli wejście jest nieparzyste.

Powyższy tekst przedstawia obraz. Możesz wygenerować obraz, wklejając go do pola tekstowego na stronie tłumacza. Dla wygody podałem poniżej obraz, w którym rozmiar kodu wynosi 31 pikseli. Siatka jest dostępna dla czytelności i nie jest częścią programu.

Wyjaśnienie

Ten program używa wbudowanego modulo do ustalenia, czy dane wejściowe są parzyste czy nieparzyste.

Instruction    Δ Hue   Δ Lightness   Stack
------------   -----   -----------   -------
In (Number)    4       2             n
Push [2]       0       1             2, n
Modulo         2       1             n % 2
Out (Number)   5       1             [Empty]
[Exit]         [N/A]   [N/A]         [Empty]

Ciemnoniebieskie kody w lewym dolnym rogu nigdy nie są odwiedzane i można je zmienić na dowolny kolor inny niż kolor sąsiedniego kodu. Wybrałem ciemnoniebieski, ponieważ myślę, że ładnie wygląda z resztą programu. Lewy górny czarny kod może być również biały, ale nie w żadnym innym kolorze. Wybrałem czarny, ponieważ myślę, że wygląda ładniej.

Dostarczyłem program zarówno w formie obrazu, jak i tekstu, ponieważ nie ma wyraźnego konsensusu co do sposobu oceniania programów Piet. Zapraszam do rozważenia meta dyskusji.



14

JavaScript, 6 bajtów

Anonimowa funkcja:

n=>n&1

Alternatywnie o tej samej długości:

n=>n%2

Oba powrócą, 0|1co powinno spełniać wymaganie dotyczące truthy|falseywartości.

Wypróbuj obie wersje online


Zgodnie z odpowiedzią Java nie spełnia to wymagań. Czy JavaScript różni się pod tym względem?
TheLethalCoder

4
Pytanie jasno stwierdza: „ To nie jest wymagane, możesz użyć innych wartości Prawdy / Falsy ”, które 0|1są, prawda? @TheLethalCoder
inserttusernamehere

1
Nie jestem pewien, czy są w JavaScript, o to pytałem, zobacz meta q / a, aby zobaczyć, czy są. W JavaScript nie znam się na tyle dobrze, by wiedzieć.
TheLethalCoder

4
JavaScript jest znacznie luźniej pisany niż Java. Z przyjemnością traktuje prawie wszystko jak każdy rodzaj. W szczególności z przyjemnością traktuje zmiennoprzecinkowe jako logiczne (podczas gdy Java wygeneruje błąd kompilacji, jeśli to zrobisz). (Nawiasem mówiąc, prawdopodobnie nie chcesz wiedzieć, dlaczego zwraca liczbę zmiennoprzecinkową, a nie liczbę całkowitą.)

1
Dobrze :) Nie byłam wystarczająco znajoma, żeby się poznać, więc po prostu się zastanawiałam.
TheLethalCoder

12

Japt , 1 bajt

v

Zwraca 1liczby 0nieparzyste.

Wypróbuj online!

Wyjaśnienie

Jedną z charakterystycznych cech Japt jest to, że w przeciwieństwie do większości języków golfowych, funkcje nie mają ustalonej aranżacji; to znaczy, każda funkcja może zaakceptować dowolną liczbę argumentów. Oznacza to, że czasami możesz pominąć argumenty, a Japt zgadnie, co chcesz. vna liczbach jest funkcją, która akceptuje jeden argument i zwraca, 1jeśli liczba jest podzielna przez argument, w przeciwnym razie 0. Na przykład:

v3

Ten program wyświetli 1 jeśli dane wejściowe są podzielne przez 3, i w 0przeciwnym razie. Tak się składa, że ​​domyślnym argumentem jest 2rozwiązanie tego problemu w jednym bajcie.


Alternatywne rozwiązanie 1-bajtowe:

¢

¢konwertuje dane wejściowe na ciąg base-2. -hFlag zwraca ostatni znak z łańcucha.

Wypróbuj online!


11

pieprzenie mózgu , 12 bajtów

,++[>++]>++.

Wymaga to interpretera z okrągłą taśmą i owijającymi się komórkami. Ten w TIO ma 65 536 8-bitowych komórek i spełnia wymagania.

I / O jest w bajtach. Nieparzyste dane wejściowe są odwzorowywane na 0x00 (fałsz), nawet dane wejściowe na bajt niezerowy (prawda).

Wypróbuj online!

Jak to działa

Zaczynamy od odczytania bajtu wejścia za pomocą ,i dodania 2 do jego wartości za pomocą++ . Zobaczymy później, dlaczego konieczne jest zwiększenie.

Następnie wchodzimy do pętli, która przesuwa się do komórki po prawej stronie, dodajemy 2 do niej i powtarza proces, chyba że ustawi to wartość komórki na 0 .

Początkowo wszystkie komórki oprócz komórki wejściowej mają wartość 0 . Jeśli wejście jest nieparzyste, dodanie 2 do niego nigdy go nie wyzeruje. Jednak po zapętleniu taśmy 127 razy, następna iteracja pętli ustawi komórkę po prawej stronie komórki wejściowej na 128 × 2 = 0 (mod 256) , powodując zakończenie pętli. >++powtarza ciało pętli jeszcze raz, więc następna komórka jest również zerowana, a następnie drukowana za pomocą. .

Z drugiej strony, jeśli dane wejściowe to n, a n jest parzyste, kod przed pętlą ustawia komórkę wejściową na n + 2 . Po zapętleniu wokół taśmy (256 - (n - 2)) / 2 = (254 - n) / 2 razy, komórka wejściowa osiągnie 0 , a komórka po jej prawej stronie będzie zawierać wartość (254 - n) / 2 × 2 = 254 - n . Po dodaniu 2 za pomocą >++, .wypisuje 256 - n = -n (mod 256) , co jest niezerowe, ponieważ n jest niezerowe.

Na koniec zauważ, że w drugim przypadku wypisano by 258 - n = 2 - n (mod n) , gdybyśmy nie zwiększali danych wejściowych przed pętlą, ponieważ do wyzerowania komórki wejściowej byłaby potrzebna jeszcze jedna pętla wokół taśmy. Program zawiedzie zatem dla wejścia 2 .


11

Sinclair ZX81 BASIC 124 bajty 114 bajtów 109 bajtów 57 50 tokenizowanych bajtów BASIC

Zgodnie z komentarzami Adáma poniżej, oto najnowszy kandydat do wydania:

 1 INPUT A
 2 IF NOT A THEN STOP
 3 PRINT A;":";NOT INT A-(INT (INT A/VAL "2")*VAL "2")

Teraz będzie PRINT 1nawet0 nieparzyste. Zero wychodzi.

Oto starsze wersje wykazu symbolicznego w celach informacyjnych:

 1 INPUT A
 2 IF NOT A THEN STOP
 3 LET B=INT (INT A/2)
 4 PRINT A;":";NOT INT A-B*2
 5 RUN

Oto stara lista (v0.01), abyś mógł zobaczyć ulepszenia, które wprowadziłem, ponieważ ta nowa oferta jest nie tylko mniejsza, ale jest szybsza:

 1 INPUT A
 2 IF A<1 THEN STOP
 3 LET B=INT (INT A/2)
 4 LET M=1+INT A-B*2
 5 PRINT A;":";
 6 GOSUB M*10
 7 RUN
10 PRINT "TRUE"
11 RETURN
20 PRINT "FALSE"
21 RETURN

A oto v0.02 (przy użyciu podciągów Sinclair):

 1 INPUT A
 2 IF NOT A THEN STOP
 3 LET B=INT (INT A/2)
 4 LET M=1+INT A-B*2
 5 LET C=4*(M=2)
 6 PRINT A;":";"TRUE FALSE"(M+C TO 5+C+(M=2))
 7 RUN

ZX81 in action - true or false from v1/2


1
To nie jest złożoność Kołmogorowa . Musisz po prostu zwrócić 0 lub 1 dla każdego podanego wejścia.
Adám

Pytanie wygląda na to, że zostało zredagowane, odkąd dokonałem pierwszego wpisu, ponieważ <i> czytam </i>, jak gdyby prawda / fałsz wymagały zwrotu. Jako taki mogę dodatkowo uprościć symboliczną listę.
Shaun Bebbers

1
Dlaczego musisz wyjść na zero? Nie możesz po prostu PRINT (A-2*INT A/2)/A?
Adám

W oryginalnym pytanie, które zostało usłużnie edytowany, to podano, że wartość 0nie powinna produkować TRUEOr FALSE, stąd jak 0nie miała produkować wynik wtedy, gdyby STOPping program. Prawdopodobnie zinterpretowałem pierwotne pytanie, ponieważ zostało wysłane przez @SIGSEGV trochę zbyt dosłownie. Tak, można optymalizować i refaktoryzować, masz rację.
Shaun Bebbers


8

Siatkówka, 3 bajty

11

Końcowy znak nowej linii jest znaczący. Pobiera dane wejściowe jednoargumentowe. Wyjścia 1 dla liczb nieparzystych, nic dla liczb parzystych. Wypróbuj online!


Wiesz, możesz po prostu skopiować pełną odpowiedź (z niezbędnym formatowaniem dla końcowego podawania linii) z TIO.
Martin Ender

@MartinEnder Nie, nie wiedziałem.
Neil

Jest to przedostatni fragment kodu podczas generowania bezpośredniego linku.
Martin Ender

Och, to cały fragment? Właśnie widzę wiersz tytułu.
Neil

@Neil, jeśli klikniesz fragment, rozwinie go i zobaczysz ciało
Dada

8

C ++, 25 bajtów

template<int v>int o=v&1;

Definiuje to szablon zmienny ( konstrukcja podobna do funkcji ) o wartości równej operacji bitowej input&1. 0dla parzystych wartości1 dla wartości nieparzystych. Wartość jest obliczana na podstawie czasu kompilacji.

Wymaga C ++ 14.

Wypróbuj online!


Woah, to wydaje się naprawdę sprytne. Nigdy wcześniej nie widziałem takiej odpowiedzi! Jak to nazwać?
DJMcMayhem

@DJMcMayhem To proste użycie zmiennych szablonów C ++ 14 . Nie jest to jednak takie sprytne: prosta funkcja aproach ( int o(int v){return v&1;}) zajmowałaby tę samą liczbę bajtów, z tą różnicą, że wartość byłaby obliczana w czasie wykonywania.
Cássio Renan

Nie sądzę, że tak naprawdę to się kwalifikuje, ponieważ kod zostałby po prostu skompilowany do wartości 1 lub 0. Ponowne uruchomienie tego samego skompilowanego kodu nigdy nie dałoby innego wyniku, nie jest to funkcja w ten sposób. Bliżej stałej.
Drunken Code Monkey

@DrunkenCodeMonkey czas oceny nie ma znaczenia. Liczy się to, że mogę przekazać argumenty do konstrukcji (podać dane wejściowe), a ona zwróci wyniki (wynik wyjściowy). Z twojego punktu widzenia żadna funkcja nie byłaby kwalifikowalna, ponieważ bez main()konstrukcji podobnej do programu program zostałby po prostu skompilowany do kompilacji return 0, a nawet nie. Jest to sprzeczne z meta postem, do którego odsyłam w tej odpowiedzi.
Cássio Renan

1
Funkcja lambda C ++ oszczędza 3 bajty [](int x){return x%2;} Wypróbuj online
Johan du Toit

8

Pyth, 3 2 bajty

Ja to zrobiłem. Grałem w golfa, który nie nadaje się do gry w golfa. Po raz pierwszy to nietrywialne rozwiązanie, któremu udało się zdobyć ostatni bajt!

!F

Prawda na parzystych wartościach (bez 0, ale to nie jest pozytywne, więc ...).

Wyjaśnienie:

!    Not
 FQQ Applied to the input (first Q) Q times

Na przykład !!2 = !0 = 1i!!!3 = !!0 = !1 = 0

Tutaj będę przechowywać moją bibliotekę 3-bajtowych rozwiązań.

„Jest jeszcze jedna odpowiedź z wieloma 3-bajtowymi rozwiązaniami, ale jeszcze nie jest kompletna. Dodajmy jeszcze kilka:

@U2

Indeksuje do listy [0,1]modułowo, podając prawdziwe wartości przy nieparzystym wprowadzaniu.

}2P

Czy 2 w pierwotnym rozkładzie na czynniki wejściowe? (Prawda nawet)

ti2

Czy GCD 2 i wejście 2? (Prawda nawet)

gx1

czy XOR-owanie wejścia 1 nie zmniejsza go? (Prawda nawet)

q_F

Zasadniczo Q == Q*-1^Qgdzie Q jest wejściem, ale odbywa się przez pętlę. (Prawda nawet)

_FI

Jak powyżej.

g^_

Przekłada się na Q <= -Q^Q(Prawda nawet)

Zauważ, że dowolne z powyższych rozwiązań gbędzie działać z <odwróconym fałszem prawdy).


1
Tak, to raczej sprytne :)
Cyfrowa trauma

7

C #, 8 bajtów

n=>n%2<1

Kompiluje do Func<int, bool>.

Lub jeśli anonimowa funkcja jest niedozwolona, ​​ta metoda dla 21 bajtów:

bool p(int n)=>n%2<1;

@obarakon Not in C #, zobacz tę odpowiedź na meta . Zasadniczo if (1)się nie kompiluje.
TheLethalCoder

nie ma if (1)w twoim kodzie?
TY

1
@YOU Prawidłowo, przeczytaj meta post, aby zrozumieć, co mam na myśli.
TheLethalCoder

2
@YOU, przyjęta definicja (na tej stronie) wartości truey / falsey to: Jeśli if (x)wartość true, xto wartość true. Jeśli ma wartość false, to jest false. Tak więc, w pseudo kod: if x, disp(true), else disp(false). Jeśli kompilacja się nie powiedzie, xnie będzie można jej użyć. W programie MATLAB i kilku innych języków, wszystkiego, co niezerowe uważany jest prawdziwe, natomiast 0i falsesą uważane za fałszywe. Tak więc ciąg Hellojest prawdziwą wartością w MATLAB. Jednak niektóre języki wymagają, aby wartość była wartością logiczną (w tym przypadku), dlatego należy ją przekonwertować na wartość logiczną, używając <1.
Stewie Griffin

Widzę. dzięki za wyjaśnienia.
TY

7

Pyth, 3

Spodziewałem się, że Pyth będzie miał wbudowany 1 lub 2 bajty. Zamiast tego oto najlepsze rozwiązania, jakie mogłem znaleźć:

%Q2

lub

.&1

lub

e.B

2
Nie jest wbudowany, ale istnieje rozwiązanie 2-bajtowe .
Steven H.

7

TIS-100, 39 bajtów

Oczywiście jest to dokładniej program dla architektury T21 Basic Execution Node, emulowany przez emulator TIS-100.

Odniosę się do tej odpowiedzi, aby uzyskać fantastycznie szczegółowe wyjaśnienie wyników dla programów TIS-100, a także ich struktury.

@0
ADD UP
G:SUB 2
JGZ G
MOV ACC ANY

Wyjaśnienie:

@0          # Indicates that this is node 0
ADD UP      # Gets input and adds it to ACC, the only addressable register in a T-21
G:          # Defines a label called "G"
SUB 2       # Subtracts 2 from ACC
JGZ G       # If ACC is greater than 0, jumps to G
MOV ACC ANY # Sends the value of ACC to the first available neighbor; in this case, output.
            # Implicitly jumps back to the first line

W pseudokodzie wyglądałoby to tak:

while (true) {
    acc = getIntInput()
    do {
        acc -= 2
    } while (acc > 0)
    print(acc)
}

T21 nie ma typów boolowskich ani wartości prawda / fałsz, więc program zwraca -1 dla liczb nieparzystych i 0 dla liczb parzystych, chyba że poprzednie wejście było nieparzyste, w którym to przypadku zwraca -1 dla liczb parzystych i 0 dla liczb nieparzystych liczby - jeśli ten fakt Cię niepokoi, jest to odpowiedź na pełny program, więc możesz po prostu zrestartować T21 między użytkami.


Właśnie myślałem o TIS-100, grze logicznej Zachtronics, ponieważ chciałem ją kupić w zeszłym tygodniu. Czy TIS jest również właściwym językiem, czy istnieje tylko w tej grze wideo?
seshoumara,

@seshoumara O ile mi wiadomo, istnieje tylko w grze. Cała architektura maszyn w TIS jest dość typowa, a język w stylu asemblera się do tego przywiązuje.
steenbergh

Mogę potwierdzić, że istnieje tylko w grze (a nawet we wszechświecie jest to dziwna i dziwna architektura). Napisałem odpowiedź, do której Turtleman nawiązał, jakby istniały prawdziwe urządzenia TIS, ale zrobiłem to tylko dla zabawy.
undergroundmonorail

2
@Blacksilver Myślę, że prawdziwym wyzwaniem byłoby udzielić odpowiedzi Spacechem!
Tutleman

1
Wdrożyłem emulator TIS dla TIO, więc możesz teraz wypróbować go online!
Phlarx

6

Galaretka , 1 bajt

Wypróbuj online!

Po prostu kolejne wbudowane.

Dla ludzi, którzy nie znają Jelly: ma dość dużą zdolność wnioskowania o brakujących fragmentach kodu, dlatego nie ma dużej różnicy składniowej między fragmentem kodu, funkcją i pełnym programem; interpreter automatycznie doda kod do wprowadzenia odpowiednich argumentów i wyświetli wynik. Jest to bardzo przydatne, gdy mamy do czynienia z regułami PPCG, które zezwalają na funkcje i programy, ale nie pozwalają na urywki. W linku TIO traktuję to jako funkcję i uruchamiam na każdej liczbie całkowitej od 1 do 20 włącznie, ale działa to również jako pełny program.

Galaretka , 2 bajty

&1

Wypróbuj online!

Jest też dość krótki bez wbudowanego. (Jest to bitowe-ORAZ z 1.)


2
Wszystkie te języki wydają się nieco podstępne dla tych pytań lol
Drunken Code Monkey

6

7 , 18 znaków, 7 bajtów

177407770236713353

Wypróbuj online!

7 nie ma niczego, co przypominałoby normalną instrukcję if, i ma więcej niż jeden idiomatyczny sposób reprezentowania wartości logicznej. W związku z tym trudno jest ustalić, co jest prawdą i falseyem, ale ten program używa 1ciągów nieparzystych, a zerowy dla parzystych (wartości prawdy i falseya dla Perla, w których zapisany jest 7 interpreter). (Łatwo to zmienić; nieparzyste dane wyjściowe są określane przed pierwszymi 7, parzyste dane wyjściowe są określane między pierwszymi dwoma siódemkami. Może jednak potrzebować zmiany formatu wyjściowego, aby obsłużyć inne typy danych wyjściowych; Użyłem dwóch najkrótsze wyraźne wyniki tutaj.)

7 wykorzystuje skompresowane kodowanie ósemkowe, w którym trzy bajty źródła reprezentują osiem bajtów programu, więc 18 znaków źródła jest reprezentowanych w 7 bajtach na dysku.

Wyjaśnienie

177407770236713353
 77  77     7       Separate the initial stack into six pieces (between the 7s)

        023         Output format string for "output integers; input one integer"
       7   6        Escape the format string, so that it's interpreted as is
             13     Suppress implicit looping
               3    Output the format string (produces input)
                5   Run the following code a number of times equal to the input:
   40                 Swap the top two stack elements, escaping the top one
                 3  Output the top stack element

Podobnie jak wiele formatów wyjściowych, „liczby całkowite wyjściowe” cofają dowolną liczbę poziomów zmiany znaczenia przed wyprowadzeniem; tak więc 40, które łącznie tworzą operację zamiany i ucieczki, mogą być użyte zamiast 405operacji zamiany (która jest zamianą i ucieczką, po której następuje rozpakowanie). Jeśli korzystasz z formatu wyjściowego, który nie jest stabilny w odniesieniu do zmiany znaczenia, potrzebujesz pełnego405 tam. (Nawiasem mówiąc, powodem, dla którego musieliśmy pierwotnie opuścić ciąg formatu, jest to, że jeśli pierwsze wyjście zawiera niereprezentowalne znaki, automatycznie wymusza format wyjściowy 7. Ucieczka powoduje usunięcie niereprezentatywnych znaków i pozwala wybrać format 0).

Z sześciu początkowych elementów stosu, najwyższy jest programem głównym (i jest zużywany przez to 13, co uruchamia się jako pierwsze); druga to ta, 023która wybiera format wyjściowy i żąda danych wejściowych i jest zużywana przez tę operację; trzeci jest zużywany jako efekt uboczny 3operacji (służy do odrzucania elementów stosu oprócz generowania wyników); czwarta, 40to ciało pętli (i pochłaniane przez5 wykonującego ją); a piąta i szósta są zamieniane kilka razy równe wartości wejściowej (w ten sposób kończą się w swoich pierwotnych pozycjach, jeśli dane wejściowe są parzyste, lub w pozycjach innych, jeśli dane wejściowe są nieparzyste).

Możesz zagrać w golfa od postaci, zmieniając wiodące 177na 17(i polegając na domyślnym pustym szóstym stosie), ale to zmieniłoby parzystość wyników na mniej idiomatyczną metodę niż nieparzysta prawda i nie oszczędza cały bajt (źródło ma nadal siedem bajtów). Jako taki, postanowiłem użyć bardziej naturalnej formy produkcji, ponieważ nie ma gorszego wyniku.


6

Brain-Flak , 22 20 bajtów

Oto kolejna fajna odpowiedź w Brain-Flak, którą powinieneś również sprawdzić

(({})){({}[()]<>)}<>

Wypróbuj online!

Wyjaśnienie

Na początek zrobimy kopię naszego wkładu za pomocą (({})).

Dolna kopia będzie służyć jako prawdziwa wartość, podczas gdy górna będzie używana do faktycznego przetwarzania. Dzieje się tak, ponieważ potrzebujemy, aby dane wejściowe znajdowały się na górze, a umieszczenie 1 pod wejściem jest raczej kłopotliwe (dwa dodatkowe bajty!).

Następnie zaczynamy pętlę {({}[()]<>)} . Jest to prosta modyfikacja standardowej pętli odliczającej, która zmienia stosy za każdym razem, gdy zmniejsza się.

Ponieważ są dwa stosy, liczba parzysta kończy się na wierzchu stosu, na którym się rozpoczęła, a liczba nieparzysta kończy się na przeciwnym stosie. Skopiowana wartość pozostanie na miejscu, a tym samym będzie działać jako wskaźnik miejsca, od którego zaczęliśmy.

Kiedy skończymy z pętlą, mamy 0 (pierwotnie dane wejściowe) siedzące na wartości prawdy (kopia danych wejściowych) lub fałszu (pusty stos). Mamy również przeciwną wartość na drugim stosie.

Musimy się pozbyć tych, 0które można usunąć za pomocą {}lub <>. Oba wydają się jednak działać i dają przeciwne wyniki{} powodują fałszowanie wartości zero, gdy powinna ona zwrócić prawdę. Jest tak, ponieważ nasza „prawdziwa” wartość jest kopią danych wejściowych, a zero to jedyne dane wejściowe, które mogą być fałszywe.

Ten problem można rozwiązać, kończąc program na <>.

(Oczywiście zgodnie ze specyfikacją technicznie nie muszę obsługiwać zera, ale podaj dwie opcje, które wolałbym ją obsługiwać)


6

BitCycle , 19 17 16 bajtów

?ABv
 / \ <
!+ <

Wypróbuj online!

Argh, wydaje mi się, że 18-bajtowe rozwiązanie unosi się tuż poza zasięgiem :( Haha! -2 bajty za pomocą +przekierowania bitów pochodzących z różnych kierunków.

Nadal wydaje się, że jest w nim za dużo białych znaków (całe 6 bajtów!)

Wyjaśnienie:

?ABv    Feed unary input into the main loop
 / \    Every loop, two bits will be removed from the input
 + <

 / \ <  When we reach the point where there is either one or no bits of input left
!+      If one, it will reflect off both /\s and turn left at the +
        And output, otherwise the program ends since no more bits are moving

5

Partia, 16 bajtów

@cmd/cset/a%1%%2

Wyjścia 1 dla nieparzystych, 0 dla parzystych. Alternatywna wersja 16-bajtowa działa również na liczby ujemne:

@cmd/cset/a"%1&1

17 bajtów na wyjście 1 dla parzystej, 0 dla nieparzystej:

@cmd/cset/a"~%1&1

Twój program wyświetla tylko wynik MOD, co jest niepoprawne. Pytanie (Input):(Output)
brzmiało:

5

Excel, 10 bajtów

=MOD(A1,2)

Lub:

=ISODD(A1)

Do produkcji:

http://i.imgur.com/7dJydqc.png


1
Nigdy nie widziałem excel w golfie kodu ...
programista

1
Alternatywna wersja tego kodu Excel VBA ?[A1]mod 2; funkcja okna immediates anonimowy VBE że trwa od wejścia [A1]i wyjścia do okna immediates VBE z 0(falsey) reprezentowanie nawet i 1(truthy) reprezentowanie dziwne
Taylor Scott

5

JSFuck , 9685 9384 6420 bajtów

JSFuck to ezoteryczny i edukacyjny styl programowania oparty na atomowych częściach JavaScript. Używa tylko sześciu różnych znaków do pisania i wykonywania kodu.

[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]((!![]+[])[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+!+[]]+(+(+!+[]+(!+[]+[])[!+[]+!+[]+!+[]]+[+!+[]]+[+[]]+[+[]])+[])[!+[]+!+[]]+(!![]+[])[+[]]+(+(+!+[]+[+[]]+[+!+[]]))[(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(+![]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(+![]+[![]]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]](!+[]+!+[]+[+!+[]])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]+!+[]]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]((!![]+[])[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+!+[]]+(+[![]]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+!+[]]]+(!![]+[])[!+[]+!+[]+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(![]+[])[+!+[]]+(+(!+[]+!+[]+[+!+[]]+[+!+[]]))[(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(+![]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(+![]+[![]]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]](!+[]+!+[]+!+[]+[+!+[]])[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]])()(([]+[])[([![]]+[][[]])[+!+[]+[+[]]]+(!![]+[])[+[]]+(![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(![]+[])[!+[]+!+[]+!+[]]]()[+[]])[+[]]+[!+[]+!+[]])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]]

Wyjścia 1 dla nieparzystych i 0 dla parzystych.

Wypróbuj online!

alert([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]((!![]+[])[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+!+[]]+(+(+!+[]+(!+[]+[])[!+[]+!+[]+!+[]]+[+!+[]]+[+[]]+[+[]])+[])[!+[]+!+[]]+(!![]+[])[+[]]+(+(+!+[]+[+[]]+[+!+[]]))[(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(+![]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(+![]+[![]]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]](!+[]+!+[]+[+!+[]])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]+!+[]]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]((!![]+[])[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+!+[]]+(+[![]]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+!+[]]]+(!![]+[])[!+[]+!+[]+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(![]+[])[+!+[]]+(+(!+[]+!+[]+[+!+[]]+[+!+[]]))[(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(+![]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(+![]+[![]]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]](!+[]+!+[]+!+[]+[+!+[]])[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]])()(([]+[])[([![]]+[][[]])[+!+[]+[+[]]]+(!![]+[])[+[]]+(![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(![]+[])[!+[]+!+[]+!+[]]]()[+[]])[+[]]+[!+[]+!+[]])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]](prompt()))


Myślę, że możesz wyprowadzić 0/1 zamiast true / false. alert(prompt()%2)wydaje się być 9384 znakami.
ETHprodukcje

Grałem w golfa do 6497 znaków . To równa się następujące JavaScript: []["fill"]["constructor"]("return this%2")["call"]. fillzostał wybrany, ponieważ kosztuje to tylko 81 znaków, najmniej ze wszystkich metod tablicowych. Można również argumentować, że JSFuck nie jest oddzielnym językiem, ale raczej podzbiorem JavaScript.
Łukasz

@Luke Nie mogę tego uruchomić we fragmencie kodu, a ponieważ jest to tylko żart, pozostanę przy wersji opartej na alertach, chyba że pomożesz mi zrozumieć, co robię źle.
powelles

@ Luke Zamień miejsce na, +aby zaoszczędzić kolejne 77 bajtów ;-) I osobiście uważam, że odpowiedź w JSF jest w porządku; jest to po prostu dialekt JS.
ETHprodukcje

Kod, który wkleiłem, jest jak nazwa funkcji. Wystarczy dołączyć nawiasy i dołączyć do nich argument.
Łukasz

5

Bash + bc, 21 14 11 9 bajtów

bc<<<$1%2

Odczytuje dane z wiersza poleceń, rozszerza wartość do ciągu za pomocą operacji mod i przesyła ciąg do bc w celu obliczenia. Wyjścia 1 dla nieparzystych, 0 dla parzystych.

Przypadki testowe:

(Input):(Output)
1:1
2:0
16384:0
99999999:1

Edycja: zapisane 7 bajtów dzięki @ ais523
Edycja 2: zapisane kolejne 3 bajty dzięki @Dennis
Edycja 3: zapisane kolejne dwa dzięki @Dennis


2
Witamy na stronie!
DJMcMayhem

Być może mógłbyś wziąć dane wejściowe z argumentu wiersza poleceń, aby bash (np. $1) Zamiast wydawać bajty na czytanie ze standardowego wejścia?

@ ais523: Świetna sugestia! Powinienem pomyśleć o zrobieniu tego w skrypcie zamiast w wierszu poleceń.
Christopher Pitts

Możesz to skrócić do bc<<<$1%2.
Dennis

@Dennis: Dzięki! Próbowałem tego wcześniej, ale nie mogłem uzyskać poprawnej składni.
Christopher Pitts
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.