Bu çift mi yoksa tuhaf mı?


65

Not: Henüz bir vanilya eşlik testi zorluğu olmadı (C / C ++ dili var, ancak C / C ++ dışındaki dilleri kullanma özelliğini engelliyor ve diğer vanilya olmayan diller de çoğunlukla kapalı.) bir.

Olumlu bir tamsayı verildiğinde, paritesini (örneğin, sayı tek veya çift ise) gerçeği / sahte değerlerde verin. Truthy sonuçlarının tek veya çift girdilere karşılık gelip gelmeyeceğini seçebilirsiniz.


Örnekler

Doğru / Yanlışı eşit ve tek olarak kabul etmek (Bu gerekli değildir, Her biri için diğer Truthy / Falsy değerlerini kullanabilirsiniz):

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

Liderler Sıralaması


2
Bu matematiksel olarak hesaplamalı parite ile karıştığım ilk şey değil ... bu bir şifre sitesi!
Neil

Bu hemen hemen bu ( 1 , 2 , 3 ) sorulardan biri olduğundan, muhtemelen tüm cevapları görmek için bir pasajı olmalıdır.
f Marnɛtɪk

4
@MikeBufardeci Çünkü "katalog", bulunduğunuz ülkeye göre farklı yazıldığından. ABD’deki bizler için “katalog”. "Afiş" kültür değişmezdir.
mbomb007

2
@tuskiomi Bu meydan okuma yalnızca olumlu tamsayıları sorar. (0, eşit olsa da olumlu değildir)
Calvin'in Hobileri

3
@ LucioCrusca PPCG'ye Hoşgeldiniz! Code Golf'un temel fikri, mümkün olan en kısa biçimde bir program yapmaktır. Bu zorluk bir tamsayı okumak (pozitif, sıfır olmayan) ve eşit mi yoksa tek mi çıktı. Bir şeyle karıştıysanız , lütfen On Dokuzuncu Bayt'ı ziyaret edin ve özgürce sorun. Veya sitenin politikası veya kuralları ile karıştıysanız , Meta'ya gidin . Sonunda, topluluğumuza abone olduğunuz için teşekkür ederiz!
Matthew Roh

Yanıtlar:


112

ArnoldC , 299 283 bayt

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

Bu 1, tek giriş için (truthy) ve çift giriş için (asılsız) çıktılar 0.

Çevrimiçi deneyin!

Şimdi plan bu ” (Bir açıklama girişimi)

Kod girişi değişkene okur, imodulo 2'nin sonucuyla değiştirir ve ardından yazdırır.

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
Benim ilk ArnoldC cevabım!
Luis Mendo, 21.07

16
BULLSHIT YOU HAVE NO RESPECT FOR LOGIC GET TO THE CHOPPER
Sihirli Ahtapot Urn

17
GET YOUR ASS TO MARS... hiç sözüm yok.
Matthew Roh

12
Bunu düzeltmek için bu topluluğa katıldım. Aferin efendim
Erik

2
Bu gönderiye oy vermek için de bu topluluğa katıldım. :)
Vada Poché

46

brainfuck , 8 bayt

+[,>,]<.

Giriş bir arada. Çıktı, tek sayılar için 1'dir (çift) ve çift sayılar için NUL (sahte) olur.

Çevrimiçi deneyin!

Nasıl çalışır

+While döngüsüne girebilmek için mevcut hücreyi artırarak başlarız [,>,].

Her yinelemede, ,STDIN'den bir bayt okur >, hücreye sağa ilerler, ardından ,STDIN'den başka bir bayt okur. Giriş bittiğinde, yorumlayıcı (zaten TIO'da olanı) hücreyi NUL olarak ayarlayacaktır . Bu gerçekleştiğinde, while döngüsünün koşulu artık yerine gelmiyor ve ondan ayrılıyoruz.

Let , n giriş tam sayı. Eşit miktarda girdi baytı varsa - yani n eşitse - ilk n / 2 yineleme iki 1 'i okuyacak ve bir sonraki yineleme iki NUL ' yi okuyacak ve bandı aşağıdaki gibi bırakacaktır.

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

<.bir hücreyi retrocedes ve içeriğini basar, STDOUT'a bir NUL byte gönderir .

Bununla birlikte, eğer bir miktar girdi byte varsa, ilk (n - 1) / 2 yineleme iki 1 'i okuyacaktır ve bir sonraki yineleme, 1 ve bir NUL değerini okuyarak , bandı aşağıdaki gibi bırakacaktır.

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

<Şimdi bayt / karakter tutan bir hücreye iade etmek olacaktır 1 , .yazdırır.



26

Taksi , 1.482 1.290 1.063 1.029 1.009 bayt

Daha önce Taksi'de bir program yazmamıştım ve genel olarak programlamaya yeni başlayan biriyim, bu yüzden bunun için muhtemelen daha iyi yollar var. Hataları kontrol ettim ve aynı sonucu olan farklı rotaları deneyerek biraz golf oynamayı başardım. Her türlü düzeltmeyi kabul ediyorum.

0Çift ve 1tek için döndürür .

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".

Çevrimiçi deneyin!

Haklısın, satır sonu olmadan okumak çok korkunç. İşte biçimlendirilmiş bir sürüm:

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".

İşte mantığı açıklamak için en iyi girişimim:

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.

Taksi Garajına geri dönmemek STDERR'ye çıktı veriyor ama ben bunun için iyiyim .


7
Her zaman
goto'nun

2
Dil sadece geniş kapsamlı kullanım kullanımını gerektirmiyor, aynı zamanda tek branşlama yöntemi ise sadece farklı bir isim olan planları kullanmak.
Mühendis Toast

23

Retina , 8 bayt

[02468]$

Ondalık giriş için bir Retina cevabı. Bu, hemen hemen her regex lezzetinde çalışan düz bir regex çözümüdür. Maçlar (ve baskılar 1) hatta girişler için ve eşleşmeyen (ve baskılar 0) garip girişler için.

Çevrimiçi deneyin!

8 bayt için de bir alternatif, tüm çift basamakları xilke çevirmek için bir harf çevirisi aşaması kullanır (çünkü harf çevirisi aşamaları çift / tek basamaklar için yerleşik bir yapıya sahiptir):

T`E`x
x$

Tabii ki, en kısa giriş formatı ( tekdüzeyden bile kısa olan ) bu durumda basit bir regex'in 0$yeterli olacağı durumlarda ikili olacaktır. Ancak, zorluk temelde en az önem arz eden ikili rakamı bulmakla ilgili olduğundan, ikili girdi asıl meydan okumayı atlatıyor gibi görünmektedir.


1
"TeX" için +1. Bana bir LaTeX cevap ... görmek istiyorum yapar
Brevan Ellefsen

@Richard Bu nedenle kullanılması gereken geçerli bir girdi değildir. (Her ne kadar bu aslında zaten doğru şekilde ele alındığı anlamına gelse de.)
Martin Ender


20

LOLCODE, 67 bayt

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

WINSayı çiftse (true) döndüren fonksiyon , else (tek) döndürür FAIL(false).

İle ara C"123".


20

MATL , 5 3 bayt

Çünkü yerleşimler sıkıcı

:He

Bu, çift girdi için sıfır olmayan değerlerin (ki bu truthy) bir matrisini ve tek alt giriş için sağ alt girişinde (sahte olan) sıfır olan bir matris çıkarır.

Çevrimiçi deneyin! Altbilgi kodu,if-elsesonucun doğruluğunu veya yanlışlığını gösterenbirdaldır. Bu altbilgiyi kaldırmak, matrisi dolaylı olarak görüntüler.

açıklama

5Bir örnek olarak girişi düşünün

:     % 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
'Yerleşikler sıkıcı' HeAA, HeAA, HeAA. (Üzgünüm bu kötü bir haberi)
Matthew Roh

3
@SIGSEGV HeHeHe
Luis Mendo

2
Akıllıca yaklaşım! :)
Stewie Griffin,

17

Java 8, 8 bayt

n->n%2<1

Burada dene.

Java 7, 30 bayt

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

Burada dene.

trueÇift sayılar ve falsetek sayılar için çıktılar


Eğer 1/0yerine izin verilecek true/false( burada oyların sayıları göz önüne alındığında değildir ):

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

22
Tüm gülünçça ayrıntılı Java eşyaları nerede? Bunun en az 50 bayt çok kısa olduğunu düşünüyorum ...
Stewie Griffin

2
Bir zamanlar code-trolling adında bir etiket vardı . Ama bu bir bir olduğunu çok güzel kabul Java cevap ve burada bir olan kod golf cevap. Ve biraz daha .
Stewie Griffin

2
@ lukeg Merhaba, meydan okuma aksi belirtilmedikçe , varsayılan program veya işlevdir . Bu, Java ve C # gibi dillerin, sınıfın tamamı yerine yalnızca işlevi (ve gerekli içe aktarmaları) göndermesine izin verildiği anlamına gelir. Eğer soru-asker özel olarak bir program isterse, gerçekten sınıf / arayüz ve ana yöntem gibi sınır çizgisi kodunu eklemeliyim.
Kevin Cruijssen

1
@lukeg Eğer zorlukları kendiniz cevaplamaya başlamak istiyorsanız, işte Java'da okunması ilginç olabilecek golf oynamak için bazı ipuçları . PPCG'ye Hoşgeldiniz! :)
Kevin Cruijssen

6
@StewieGriffin İşte gidiyorsun! 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 kodlayıcı / 16 bayt

Source Code

5njaampjhompppam

Çevrimiçi tercüman burada mevcut.

Bu program, giriş çift ise 0, giriş tek ise 1 ile döner.

Yukarıdaki metin görüntüyü gösterir. Resmi, yorumlayıcı sayfasındaki metin kutusuna yapıştırarak oluşturabilirsiniz. Kolaylık sağlamak için codel boyutunun 31 piksel olduğu aşağıdaki resmi verdim. Izgara okunabilirlik için orada ve programın bir parçası değil.

açıklama

Bu program, girişin çift mi yoksa tek mi olduğunu belirlemek için modulo yerleşikini kullanır.

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]

Sol alt kısımdaki koyu mavi kodeller hiçbir zaman ziyaret edilmez ve komşu bir kabinin renginden başka herhangi bir renge değiştirilebilir. Programın geri kalanında hoş göründüğünü düşündüğüm için koyu maviyi seçtim. Sol üstteki siyah kodon beyaz da olabilir, ancak başka bir renkte olamaz. Daha güzel göründüğünü düşündüğüm için siyahı seçtim.

Piet programlarının nasıl puanlanacağı konusunda net bir fikir birliği olmadığı için programı hem resim hem de metin şeklinde sağladım. Meta tartışmayı tartmakta özgürsünüz .



14

JavaScript, 6 bayt

Anonim bir işlev:

n=>n&1

Alternatif olarak aynı uzunlukta:

n=>n%2

Her ikisi de, değer 0|1gereksinimini yerine getirmesi gereken geri dönecektir truthy|falsey.

Her iki sürümü de çevrimiçi deneyin


Göre Java cevap bu şartları yerine gelmez. JavaScript bu açıdan farklı mı?
TheLethalCoder 21:17

4
Soru açıkça " Bu gerekli değildir, Diğer Truthy / Falsy değerlerini kullanabilirsiniz " demiştir0|1 , doğru mu? @TheLethalCoder
insertusernamehere

1
JavaScript'te olup olmadıklarını sorduğumdan emin değilim, olup olmadıklarını görmek için meta q / a'ya bakın. JavaScript'i tanıyacak kadar tanıdık değilim.
TheLethalCoder 21:17

4
JavaScript, Java'dan çok daha gevşek bir şekilde yazılmıştır. Neredeyse her tür şeyi tedavi etmekten mutluluk duyarız. Özellikle, kayan noktalara boolean olarak davranmaktan mutlu olur (oysa Java bunu derleme zamanı hatası verir). (Bu arada, bunun neden bir tamsayıdan ziyade bir şamandıra döndürdüğünü bilmek istemezsiniz.)

1
İyi :) Kendimi tanıyacak kadar tanıdık değildim, o yüzden merak ettim.
TheLethalCoder 21:17

12

Japt , 1 bayt

v

Tek olan çiftler 1için döndürür 0.

Çevrimiçi deneyin!

açıklama

Japt'in belirleyici özelliklerinden biri, çoğu golf dilinden farklı olarak, işlevlerin sabit bir ariteliği bulunmamasıdır; yani, herhangi bir fonksiyon herhangi bir sayıda argümanı kabul edebilir. Bu, bazen argümanları dışarıda bırakabileceğiniz anlamına gelir ve Japt ne istediğinizi tahmin eder. von numbers, bir argümanı kabul eden ve 1sayı argüman tarafından bölünebilirse geri dönen bir fonksiyondur 0. Örneğin:

v3

Bu program 1, giriş 3 ile bölünebilir ise ve sonra çıkarsa verilir 0. Bu sadece varsayılan argüman olduğu için gerçekleşir 2, bu nedenle bu zorluğu tek bir baytta çözer.


Alternatif 1 bayt çözüm:

¢

¢girişi bir base-2 dizgisine çevirir. -hBayrak dizesinden son kömürü döndürür.

Çevrimiçi deneyin!


11

brainfuck , 12 bayt

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

Bu, dairesel bir bant ve etrafına sarılı hücreleri olan bir tercüman gerektirir. TIO'daki 65,536 8 bit hücreye sahip ve gereksinimleri karşılar.

G / Ç, bayt cinsinden. Tek girişler 0x00 (falsy) ile eşleşir, hatta sıfır olmayan bir baytla (truthy) giriş yapar.

Çevrimiçi deneyin!

Nasıl çalışır

Girdilerin bir baytını okuyarak ve değerine 2, ekleyerek başlıyoruz . Artışın neden gerekli olduğunu daha sonra göreceğiz.++

Sonra, sağdaki hücreye ilerleyen bir döngü giriyoruz, buna 2 ekliyoruz ve hücrenin değeri 0 olarak ayarlanmadıkça işlemi tekrarlıyoruz. .

Başlangıçta, giriş hücresi dışındaki tüm hücreler 0 tutar . Giriş tuhafsa, 2 eklemek , onu asla sıfırlamaz. Bununla birlikte, bandın etrafında 127 kez döngü yapıldıktan sonra , döngünün bir sonraki yinelemesi, hücreyi giriş hücresinin sağına 128 x 2 = 0 (mod 256) olarak ayarlayarak döngünün bitmesine neden olur. >++döngü gövdesini bir kez daha tekrarlar, böylece bir sonraki hücre de sıfırlanır ve sonra ile yazdırılır ..

Öte yandan, eğer giriş n ve n eşitse, döngüden önceki kod giriş hücresini n + 2 olarak ayarlar . Kasetin (256 - (n - 2)) / 2 = (254 - n) / 2 kez dolanmasından sonra , giriş hücresi 0 değerine ulaşacak ve sağındaki hücre değeri (254 - n) / 2 × 2 = 254 - n . İlave ettikten sonra 2 ile >++, .basacaktır 256 - s = n (mod 256) yana olmayan sıfır, n sıfırdan farklıdır.

Son olarak, ikinci durumun 258 - n = 2 - n (mod n) ' i döngüden önce girişi arttırmazsak yazdıracağını unutmayın , çünkü kasetin etrafında bir döngü daha girmek için giriş hücresini sıfırlamak gerekir. Böylece program giriş 2 için başarısız olur .


11

Sinclair ZX81 BASIC 124 bayt 114 bayt 109 bayt 57 50 belirtilmiş BASIC bayt

Adám'ın aşağıdaki yorumlarına göre, en son sürüm adayı:

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

Şimdi PRINT 1bile olacak0 tek . Sıfır çıkar.

Referans amaçlı sembolik listenin eski versiyonları:

 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

İşte eski (v0.01) liste, bu yüzden yaptığım iyileştirmeleri yalnızca bu yeni liste daha küçük değil aynı zamanda daha hızlı görebiliyorsunuz:

 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

Ve işte v0.02 (Sinclair alt dizgilerini kullanarak):

 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
Bu kolmogorov karmaşıklığı değil . Herhangi bir giriş için 0 veya 1 döndürmeniz yeterlidir.
Adám

Soru, ilk girişimi yaptığımdan beri <i> okundu </i> gibi doğru / yanlış gibi geri döndürülmesi gereken gibi görünüyor. Böylece, sembolik listeyi daha da basitleştirebiliyorum.
Shaun Bebbers

1
Neden sıfırdan çıkmanız gerekiyor? Yapamaz PRINT (A-2*INT A/2)/Amısın
Adám

Yararlı bir şekilde düzenlenmiş olan orijinal soruda, değerin 0 bir üretmek olmamalıdır TRUEOr FALSEolarak dolayısıyla, 0o zaman o vardı bir sonuç gerekiyordu STOPprogramı ping. Muhtemelen orjinal soruyu @SIGSEGV tarafından tam anlamıyla biraz fazla ifade ettiği için yorumladım. Evet, bir optimize ve refactor olabilir, haklısın.
Shaun Bebbers


8

Retina, 3 bayt

11

Sondaki yeni satır önemli. Tekli girişi alır. Tek sayılar için 1, çift sayılar için hiçbir şey çıkar. Çevrimiçi deneyin!


Biliyorsunuz, tam cevabını (takip eden satır besleme için gerekli biçimlendirme ile) TIO'dan kopyalayabilirsiniz.
Martin Ender

@MartinEnder Hayır, bilmiyordum.
Neil

Permalink'i ürettiğin en son ikinci pasaj.
Martin Ender

Oh, bu tamamen pasaj mı? Sadece başlık satırını görüyorum.
Neil

@ Neil parçacığını tıklarsanız, genişletecek ve gövdeyi göreceksiniz
Dada

8

C ++, 25 bayt

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

Bu , bitsel işleme eşit değerde bir değişken şablonu ( işlev benzeri bir yapı ) tanımlar input&1.0eşit değerler için1 tek değerleri için. Derleme zamanı değeri hesaplanır.

C ++ 14 gerektirir.

Çevrimiçi deneyin!


Woah, bu gerçekten zekice görünüyor. Daha önce hiç böyle bir cevap görmedim! Buna nasıl seslenirsiniz?
DJMcMayhem

@DJMcMayhem C ++ 14 değişken şablonlarının basit bir kullanımı . Yine de akıllıca bir şey değil: basit bir işlev aproach ( int o(int v){return v&1;}), değerin çalışma zamanında hesaplanacağı farkıyla aynı miktarda bayt alır.
Cássio Renan

Kodun sadece bir geri dönüş 1 veya geri dönüş 0 olarak derleneceği için aslında nitelendirildiğini sanmıyorum. Aynı derlenmiş kodu tekrar çalıştırmak asla farklı bir sonuç vermeyecek, bu şekilde bir işlev değil. Bir sabite daha yakın.
Sarhoş Kod Maymun

@DrunkenCodeMonkey değerlendirme zamanı önemli değil. Önemli olan yapıya argümanları iletebildiğimdir (girdi sağlar) ve sonuçları geri verir (çıktı verir). Sizin bakış açınıza göre, benzer bir main()yapı olmadan program hiçbir şekilde derlenemez return 0, hatta derlenemez. Bu, bu cevapta bağladığım meta gönderiyle çelişiyor.
Cássio Renan

1
C ++ lambda işlevi 3 bayt kazandırır [](int x){return x%2;} Çevrimiçi deneyin
Johan du Toit

8

Pyth, 3 2 bayt

Yaptım. Ben ungolfable'la golf oynadım. Bir kereliğine, bu son baytı almayı başarabilen önemsiz bir çözüm!

!F

Eşit değerler üzerine Truthy (0 dahil değil, ama bu yüzden olumlu değil ...).

Açıklama:

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

Örneğin !!2 = !0 = 1, ve!!!3 = !!0 = !1 = 0

3 baytlık çözümler kütüphanemi aşağıda tutacağım.

“Birden fazla 3 baytlık çözüm içeren başka bir cevap var, ancak bu tamamlanmaktan uzak. Birkaç ekleyelim:

@U2

[0,1]Modüler olarak listeye endeksler , tek giriş üzerinde truthy değerleri verir.

}2P

Girişin asal çarpanlara ayrılmasında 2 mi var? (Hatta Truthy)

ti2

GCD 2 ve giriş 2 mi? (Hatta Truthy)

gx1

XOR girişi girişi 1 ile azaltır mı? (Hatta Truthy)

q_F

Temelde Q == Q*-1^QQ giriş olduğu, ancak bir döngü üzerinden yapılır. (Hatta Truthy)

_FI

Yukarıdaki ile aynı.

g^_

Çevirileri Q <= -Q^Q(Hatta Truthy)

Yukarıdaki yukarıdaki çözümlerden herhangi birinin ters çevrilmiş gerçek uyuşmazlık için gçalışacağına <dikkat edin.)


1
Evet, bu oldukça zekice :)
Digital Trauma

7

C #, 8 bayt

n=>n%2<1

A derler Func<int, bool>.

Veya isimsiz bir işleve izin verilmezse, 21 bayt için bu yöntem:

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

@obarakon C # dilinde değil , meta üzerindeki bu cevaba bakınız . Temelde if (1)derleme yapmaz.
TheLethalCoder 23.03

if (1)kodunda hiç yok mu?
SİZ

1
@YOU Doğru, ne demek istediğimi anlamak için meta yazıyı okuyun.
TheLethalCoder

2
@YOU, bir truthy / falsey değerinin kabul edilen tanımı (bu sitede): Doğru olarak if (x)değerlendirilirse xbir truthy değeridir. Eğer false olarak değerlendirirse o zaman false. Yani, sözde kodu: if x, disp(true), else disp(false). Bu derleme başarısız olursa, o xzaman kullanılamaz. MATLAB ve diğer birkaç dilde, sıfır olmayan herhangi bir şey doğru olarak kabul edilir 0ve falseyanlış olarak kabul edilir. Yani dize HelloMATLAB'de bir gerçeği değeridir. Bununla birlikte, bazı diller değerin bir boole değeri olmasını gerektirir (buradaki durum), bu nedenle, kullanarak bir boole değerine dönüştürülmesi gerekir <1.
Stewie Griffin

Anlıyorum. açıklamalar için teşekkürler.
SİZ


7

TIS-100, 39 bayt

Elbette, bu, daha doğrusu, TIS-100 öykünücüsü tarafından taklit edilen T21 Temel Yürütme Düğümü mimarisi için bir programdır.

Sizi sevk edeceğim TIS-100 programlarının puanlarının ve yapılarının fevkalade derinlemesine bir açıklaması için bu cevaba yönlendireceğim .

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

Açıklama:

@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

Sahte kodda şöyle bir şey görünür:

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

T21, boole türleri veya truthy / falsy değerlerine sahip değildir, bu nedenle, program tek sayılar için -1, çift sayılar için 0 döndürür, önceki giriş tek satır olmadıkça, bu durumda çift sayılar için -1, tek sayılar için 0 döndürür. sayılar - bu gerçek sizi rahatsız ediyorsa, bu tam programlı bir cevaptır, bu nedenle T21'inizi kullanımlar arasında yeniden başlatabilirsiniz.


Geçen hafta satın almak istediğimden beri, sadece Zachtronics'in yapboz oyunu TIS-100'ü düşünüyordum. TIS de gerçek bir dil midir, yoksa yalnızca bu video oyunda mı var?
seshoumara

@seshoumara Bildiğim kadarıyla, sadece oyun içinde var. TIS'deki makinelerin tüm mimarisi oldukça tipik ve bu Assembly tarzı dil buna bağlı.
steenbergh

Onaylayabilirim, sadece oyunda var (ve aslında, evrende bile tuhaf ve tuhaf bir mimari). Turtleman'ın gerçek TIS cihazları varmış gibi bağladığı cevabı yazdım, ancak sadece eğlence için karakter yaptım.
undergroundmonorail

2
@Siyahsilver Asıl sorun bence, bir Spacechem cevabı yapmak!
Tutleman

1
TIO için bir TIS öykünücüsü kullandım, artık çevrimiçi deneyebilirsiniz!
Phlarx

6

Jöle , 1 bayt

Çevrimiçi deneyin!

Sadece başka bir yerleşik.

Jelly'i bilmeyen insanlar için: eksik kod parçalarını anlama konusunda oldukça yeteneklidir, bu nedenle bir snippet, bir işlev ve tam bir program arasında çok sözdizimsel bir fark yoktur; tercüman uygun argümanları girmek ve sonucu çıkarmak için otomatik olarak kod ekleyecektir. İşlevlere ve programlara izin veren, ancak snippet'lere izin vermeyen PPCG kurallarıyla uğraşırken oldukça kullanışlı. TIO bağlantısında, bunu bir işlev olarak görüyorum ve her bir tamsayıda 1 - 20 arasında çalışıyorum, ancak tam bir program olarak da çalışıyor.

Jöle , 2 bayt

&1

Çevrimiçi deneyin!

Yerleşik olmadan da oldukça kısa. (Bu bit yönündedir ve VE 1'dir.)


2
Bütün bu diller bu sorular için biraz hile gibi gözüküyor lol
Drunken Code Monkey

6

7 , 18 karakter, 7 bayt

177407770236713353

Çevrimiçi deneyin!

7 ifadesinde normal ifadeye benzeyen bir şey yoktur ve bir booleni temsil etmek için birden fazla deyimsel yol vardır. Bu nedenle, ne truthy ve falsey sayılır bilmek zor, ama bu program kullanır1 tek ve null dizgiler için bile kullanır (7 tercümanın yazıldığı Perl için truthy ve falsey değerleri). (Bunu değiştirmek yeterince kolaydır; tek çıktı ilk 7'den önce belirlenir, çift çıktı ilk iki 7 arasında belirtilir. Diğer çıktı türlerini işlemek için potansiyel olarak bir çıktı biçimi değişikliği gerekebilir; burada en kısa belirgin çıktılar var.)

Şekil 7, üç bayt kaynağın sekiz baytlık programı temsil ettiği sıkıştırılmış bir sekizli kodlama kullanmaktadır, bu nedenle 18 kaynak karakterli diskte 7 bayt olarak temsil edilmektedir.

açıklama

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

Birçok çıkış formatı gibi, "çıkış tamsayıları" çıkıştan önce herhangi bir sayıdaki kaçma seviyesini geri alır; Böylece 40, bir bir takas-kaçış işlemi yapan 405, bir takas işlemi (kullanılabilir bir takas-kaçış ve onu izleyen bir manzara) yerine onun yerine kullanılabilir. Kaçma konusunda kararlı olmayan bir çıktı formatı kullanıyor olsaydınız, burada tam olarak ihtiyacınız olacaktı 405. (Bu arada, başlangıçta biçim dizesinden kaçmamızın nedeni, ilk çıktı yeniden bildirilemeyen karakterler içeriyorsa, otomatik olarak çıktı biçimini 7 zorlar. Bunun giderilmesi, yeniden bildirilemeyen karakterleri kaldırır ve biçim 0'ın seçilmesine izin verir.)

İlk altı yığın elementinden en üst kısmı ana programdır (ve 13ilk çalıştırılan şey tarafından tüketilir ); ikincisi, 023çıktı formatını seçen ve girdi talep eden ve bu işlem tarafından tüketilen; üçüncüsü, bir yan etkisi olarak tüketilir.3 işlemin (çıktı üretmeye ek olarak yığın elemanlarını atmak için kullanılır); dördüncüsü, 40döngünün gövdesidir (ve döngüyü 5yürüten tarafından tüketilen ); ve beşinci ve altıncı girişe eşit sayıda değiştirilir (bu nedenle giriş eşitse orijinal konumlarında veya giriş tek ise, diğerlerinin pozisyonlarında sona erer).

Sen golf kapalı lider değiştirerek bir karakter olabilir 177için 17(ve örtük boş altıncı yığın elemanı güvenerek), ama bu-garip-gerçek daha az deyimsel yönteme çıkışların paritesine değiştirecek ve bu kaydetmez bir bütün bayt (kaynak hala yedi bayttır). Böylece daha doğal bir sonuç almadım, çünkü daha kötüye gitmiyor.


6

Brain-Flak , 22 20 bayt

İşte Brain-Flak'taki harika bir cevap da kontrol etmelisiniz

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

Çevrimiçi deneyin!

açıklama

Başlamak için girdilerimizin bir kopyasını alacağız (({})).

Asıl işlem asıl işlem için kullanılacaksa, alt kopya bir gerçeğe uygun değer işlevi görecektir. Bu yapılır çünkü girişin üstte olması gerekir ve girişin altına 1 koymak oldukça zahmetlidir (iki ekstra bayt!).

Sonra bir döngüye başlıyoruz {({}[()]<>)}. Bu, standart geri sayım döngüsünde, her azalışında yığınları değiştiren basit bir değişikliktir.

İki yığın olduğu için, başlattığı yığının tepesinde bir çift sayı olurken, bir yığındaki sayı ise karşıt yığında sona erer. Kopyalanan değer yerinde kalacaktır ve bu nedenle başladığımız yerin bir işareti olarak hareket edecektir.

Döngü ile işimiz bittiğinde, 0bir truthy (girişin kopyası) veya sahte (boş yığın) değerinin üstünde oturan bir (orijinal olarak girdi) olur. Diğer yığında da ters değerimiz var.

Veya 0ile kaldırılabilecek olanlardan kurtulmamız gerekir . Ancak her ikisi de çalışıyor ve zıt sonuçlar veriyor gibi görünüyor{}<>{} gerçeği geri döndürmesi gerektiğinde sıfır için sahte bir değere neden olur. Bunun sebebi "truthy" değerimizin girişin bir kopyası olması ve sıfırın sahte olabilecek tek giriş olmasıdır.

Bu sorun, programın bununla sonlandırılmasıyla çözülür <>.

(Tabii ki teknik özelliklere göre teknik olarak sıfırı desteklemem gerekmiyor ama iki seçenek vermek zorunda kaldım)


6

BitCycle , 19 17 16 bayt

?ABv
 / \ <
!+ <

Çevrimiçi deneyin!

Argh, ulaşamadığım yerde yüzen 18 baytlık bir çözüm varmış gibi hissediyorum :( Haha! -2 bayt a kullanarak +farklı yönlerden gelen bitleri yeniden yönlendirmek için.

Bu hala içinde çok fazla boşluk varmış gibi hissediyor (6 bayt!)

Açıklama:

?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

Toplu, 16 bayt

@cmd/cset/a%1%%2

Tek için 1, çift için 0 çıkışı. Alternatif 16 bayt sürüm ayrıca negatif sayılarla da çalışır:

@cmd/cset/a"%1&1

1'e çıkış için 17 bayt, çift için 0:

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

Programınız sadece yanlış olan MOD sonucunu yansıtıyor. Soru çıkış biçiminin " (Input):(Output)" olması gerektiğini söyledi
stevefestl

5

Excel, 10 bayt

=MOD(A1,2)

Veya:

=ISODD(A1)

Çıktı için:

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


1
Daha önce kod golfde excel görmedim ...
programmer5000

1
Bu kodun alternatif Excel VBA sürümü ?[A1]mod 2; anonim bir VBE [A1], VBE'den girdi alan ve çıkaran pencere işlevini, eşitliği temsil eden (falsey) 0ve 1tekliği temsil eden (hakikaten) tuhafı temsil eden pencereyi hemen açar
Taylor Scott

5

JSFuck , 9685 9384 6420 bayt

JSFuck, JavaScript'in atomik bölümlerine dayanan ezoterik ve eğitici bir programlama stilidir. Kod yazmak ve yürütmek için yalnızca altı farklı karakter kullanır.

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

Tek için 1, çift için 0 çıkışı.

Çevrimiçi deneyin!

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


Bence doğru / yanlış yerine 0/1 çıktı verebilirsiniz. alert(prompt()%2)9384 karakter gibi görünüyor.
ETHproductions

Bunu aşağıya golfledim 6497 karaktere . Bu aşağıdaki JavaScript eşittir: []["fill"]["constructor"]("return this%2")["call"]. fillseçildi, çünkü bu yalnızca dizi karakterlerinin en az olanı 81 karaktere mal oldu. Ayrıca, JSFuck'ın ayrı bir dil değil, bir JavaScript alt kümesi olduğunu iddia edebilirsiniz.
Luke,

@Luke Bunu kod pasajında ​​çalıştırmak için alamam ve bu sadece bir şaka cevabı olduğundan, yanlış yaptığımı anlamama yardımcı olmadıkça, uyarı tabanlı sürüme bağlı kalacağım.
powelles

@Luke +Daha fazla 77 bayt kazanmak için boşluğu a ile değiştirin ;-) Ben şahsen JSF'de yanıtlamanın iyi olduğunu düşünüyorum; temelde JS'nin bir lehçesi.
ETHproductions

Yapıştırdığım kod bir işlev adı gibi. Sadece parantezleri ekleyin ve içindeki argümanı ekleyin.
Luke

5

Bash + bc, 21 14 11 9 bayt

bc<<<$1%2

Komut satırı girişini okur, değeri mod işlemi ile dizgeye genişletir ve hesaplama için dizgiyi bc'ye yönlendirir. Tek için 1, çift için 0 çıkışı.

Test durumları:

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

Düzenleme: @ ais523 sayesinde 7 bayt kaydedildi
Düzenleme 2: @Dennis ile 3 bayt daha kaydedildi
Düzenleme 3: @Dennis ile iki tane daha kurtarıldı


2
Siteye Hoşgeldiniz!
DJMcMayhem

Belki de bir komut satırı argümanından bastan (örneğin $1) 'a stdin'den okuyarak bayt harcamak yerine girdi alabilirsin ?

@ ais523: Harika öneri! Komut satırında değil, bir komut dosyasında yapmayı düşünmeliydim.
Christopher Pitts

Bunu kısaltabilirsiniz bc<<<$1%2.
Dennis,

@Dennis: Teşekkürler! Bunu daha önce denedim, ancak sözdizimi doğru alamadım.
Christopher Pitts
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.