Est-ce pair ou étrange?

65

Remarque: Il n’ya pas encore eu de défi de test de parité vanille (il existe un test en C / C ++ mais qui interdit la possibilité d’utiliser des langages autres que le C / C ++, et d’autres non-vanilles sont pour la plupart fermés également). un.

Si un entier est positif, indiquez sa parité (c’est-à-dire si le nombre est impair ou pair) en valeurs vérité / fausseté. Vous pouvez choisir si les résultats de vérité correspondent à des entrées impaires ou paires.


Exemples

En supposant que Vrai / Faux soit pair et impair (cela n'est pas obligatoire, vous pouvez utiliser d'autres valeurs Vérité / Falsie pour chacune), de manière réactive:

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

Classement

Matthew Roh
la source
2
Ce n'est pas la première fois que j'ai confondu mathématique avec parité informatique ... c'est un site de code après tout!
Neil
Comme il s’agit à peu près de l’une de ces questions ( 1 , 2 , 3 ), il devrait probablement comporter un extrait pour voir toutes les réponses.
fəˈnɛtɪk
4
@MikeBufardeci Parce que "catalogue" est orthographié différemment selon le pays d'origine. Pour ceux d'entre nous aux États-Unis, c'est "catalogue". "Leaderboard" est invariant de la culture.
mbomb007
2
@tuskiomi Le défi ne concerne que les entiers positifs. (0 est considéré comme égal, mais pas positif)
Calvin's Hobbies
3
@LucioCrusca Bienvenue à PPCG! L'idée de base de Code Golf est de créer un programme le plus court possible. Ce défi consiste à lire un entier (positif, différent de zéro) et à afficher le résultat s'il est pair ou impair. Si vous êtes confus avec quelque chose, s'il vous plaît visitez le dix-neuvième octet et demander librement. Ou si vous êtes confus avec la politique ou les règles du site, allez au Meta . Enfin, merci de vous être abonné à notre communauté!
Matthew Roh

Réponses:

112

ArnoldC , 299 283 octets

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

Cette sortie 1(ce qui est la vérité) pour une entrée impaire et 0(ce qui est faux) pour une entrée paire.

Essayez-le en ligne!

" Maintenant, c'est le plan " (Une tentative d'explication)

Le code lit l'entrée dans la variable i, la remplace par le résultat de modulo 2, puis l'imprime.

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
Luis Mendo
la source
27
Ma première réponse à ArnoldC!
Luis Mendo
16
BULLSHIT YOU HAVE NO RESPECT FOR LOGIC GET TO THE CHOPPER
Magic Octopus Urn
17
GET YOUR ASS TO MARS...Je n'ai pas de mots.
Matthew Roh
12
J'ai rejoint cette communauté pour upvote cela. Bien fait, monsieur
Erik
2
J'ai rejoint cette communauté pour faire passer ce message également. :)
Vada Poché
46

brainfuck , 8 octets

+[,>,]<.

L'entrée est unaire. La sortie est le 1 (vérité) pour les nombres impairs et NUL (falsy) pour les nombres pairs.

Essayez-le en ligne!

Comment ça fonctionne

Nous commençons par incrémenter la cellule actuelle +pour pouvoir entrer dans la boucle while [,>,].

Dans chaque itération, ,lit un octet dans STDIN, >avance vers la cellule à droite, puis ,lit un autre octet dans STDIN. Lorsque l'entrée est épuisée, l'interprète (celui de TIO, de toute façon) définit la cellule sur NUL . Une fois que cela se produit, la condition de la boucle while n'est plus remplie et nous en sortons.

Soit n le nombre entier en entrée. S'il y a un nombre pair d'octets d'entrée, c'est-à-dire si n est pair, les n / 2 premières itérations liront deux 1 , et la prochaine itération lira deux NUL , en laissant la bande comme suit.

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

<.retrocède une cellule et imprime son contenu en envoyant un octet NUL à STDOUT.

Cependant, s'il y a une quantité étrange d'octets d'entrée, les premières (n - 1) / 2 itérations liront deux 1 , et la prochaine itération lira un 1 et un NUL , en laissant la bande comme suit.

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

<va maintenant revenir à une cellule contenant l'octet / caractère 1 , qui est .imprimé.

Dennis
la source
34

Mathematica, 4 octets

OddQ

Donne Truedes entrées étranges et Falsemême des entrées, qui savait?

Il y a aussi EvenQ, mais qui voudrait taper tout ça?

Martin Ender
la source
22
Oh non. construit à nouveau.
Matthew Roh
7
@SIGSEGV C'est Mathematica pour toi. ;)
Kevin Cruijssen
6
2∣#&travaille aussi
Kelly Lowder
1
@KellyLowder true mais c'est 6 octets.
Martin Ender
Pourquoi le nom se termine- Qt -il ?
Cyoce
26

Taxi , 1 482 1 290 1 063 1 029 1 009 octets

Je n'avais jamais écrit de programme dans Taxi et je suis novice en programmation de général, il y a donc probablement de meilleures façons de s'y prendre. J'ai vérifié les erreurs et réussi à jouer au golf en essayant différents itinéraires qui ont le même résultat. Je me félicite de toute révision.

Retourne 0pour pair et 1pour impair.

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

Essayez-le en ligne!

Vous avez raison, c'est affreux de lire sans sauts de ligne. Voici une version formatée:

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

Voici ma meilleure tentative pour expliquer la logique:

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.

Ne pas retourner dans le garage à taxis provoque une sortie vers STDERR, mais cela me convient .

Rôti d'ingénieur
la source
7
J'ai toujours appris que goto est diabolique
aross
2
Non seulement le langage nécessite l'utilisation intensive de go to, la seule méthode de création de branche consiste à utiliser des plans, qui ne sont qu'un nom différent pour goto.
Ingénieur Toast
23

Retina , 8 octets

[02468]$

Une réponse de rétine pour la saisie décimale. C’est aussi une solution de regex simple qui fonctionne dans presque toutes les saveurs de regex. Correspondances (et impressions 1) pour les entrées paires et ne correspond pas (et impressions 0) pour les entrées impaires.

Essayez-le en ligne!

Une alternative, également pour 8 octets, utilise une étape de translittération pour transformer tous les chiffres pairs en chiffres. x premier (car les étapes de translittération ont une fonction intégrée pour les chiffres pairs / impairs):

T`E`x
x$

Bien entendu, le format d’entrée le plus court (même plus court que le unaire ) serait binaire dans ce cas, où une simple expression rationnelle 0$suffirait. Mais comme le défi consiste essentiellement à trouver le chiffre binaire le moins significatif, les entrées binaires semblent contourner le défi réel.

Martin Ender
la source
1
+1 pour "TeX". Cela me donne envie de voir une réponse de LaTeX ...
Brevan Ellefsen
@ Richard Et, par conséquent, ce n'est pas une entrée valide qui doit être traitée. (Bien que cela signifie en fait que le traitement est correct, de toute façon.)
Martin Ender
20

Python, 11 à 10 octets

-1 octet grâce à Griffin

1 .__and__

Essayez-le en ligne!
En utilisant bitwise and, retourne 0pour pair et 1pour impair

Barre
la source
2
1 .__and__est un personnage plus court
Griffin
20

LOLCODE, 67 octets

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

Fonction qui retourne WIN(true) si number est pair, sinon (impair) elle retournera FAIL(false).

Appeler avec C"123".

devRicher
la source
20

MATL , 5 3 octets

Parce que les bâtons sont ennuyeux

:He

Cela produit une matrice de valeurs non nulles (ce qui est vérité) pour une entrée paire, et une matrice avec un zéro dans son entrée inférieure droite (qui est faux) pour une entrée impaire.

Essayez-le en ligne! Le code de bas de page est uneif-elsebranche destinée à illustrer la véracité ou la fausseté du résultat. Supprimer ce pied de page affichera implicitement la matrice.

Explication

Considérez l'entrée 5comme un exemple

:     % 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]
Luis Mendo
la source
7
«Les bâtisseurs sont ennuyeux» HeAA, HeAA, HeAA. (Désolé, c'était un mauvais jeu de mots)
Matthew Roh
3
@SIGSEGV HeHeHe
Luis Mendo
2
Approche intelligente! :)
Stewie Griffin
17

Java 8, 8 octets

n->n%2<1

Essayez-le ici.

Java 7, 30 octets

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

Essayez-le ici.

Sorties truepour les nombres pairs et falsepour les nombres impairs


Si 1/0serait autorisé au lieu de true/false( ce n'est pas le cas, compte tenu du nombre de voix ici ):

  • Java 8 (6 octets): n->n%2
  • Java 7 (25 octets): int c(int n){return n%2;}
Kevin Cruijssen
la source
22
Où sont toutes les choses Java ridiculement verbeuses? Je pense que c'est au moins 50 octets trop court ...
Stewie Griffin
2
Il était une fois une balise appelée code-trolling . Mais celui-ci est une très belle réponse Java acceptée, et voici une réponse code-golf . Et quelques autres .
Stewie Griffin
2
@lukeg Bonjour, la valeur par défaut est programme ou fonction , sauf indication contraire du défi. Cela signifie que des langages tels que Java et C # sont autorisés à publier uniquement la fonction (et les importations requises) au lieu de la classe entière. Si le demandeur demande spécifiquement un programme, alors je dois en effet inclure le code limite tel que la classe / interface et la méthode principale.
Kevin Cruijssen
1
@lukeg Si vous souhaitez commencer à répondre vous-même à des défis, voici quelques astuces pour le golf en Java qui pourraient être intéressantes à lire. Bienvenue chez PPCG! :)
Kevin Cruijssen
6
@StewieGriffin Voilà! 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 codels / 16 octets

Source Code

5njaampjhompppam

Interprète en ligne disponible ici.

Ce programme renvoie 0 si l'entrée est paire et 1 si l'entrée est impaire.

Le texte ci-dessus représente l'image. Vous pouvez générer l'image en la collant dans la zone de texte de la page de l'interprète. Pour plus de commodité, j'ai fourni l'image ci-dessous, où la taille du code est de 31 pixels. La grille est là pour la lisibilité et ne fait pas partie du programme.

Explication

Ce programme utilise le modulo intégré pour déterminer si l'entrée est paire ou impaire.

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]

Les codes bleu foncé en bas à gauche ne sont jamais visités et peuvent être remplacés par une couleur autre que celle d'un code voisin. J'ai choisi le bleu foncé car je trouve que ça a l'air sympa avec le reste du programme. Le code noir en haut à gauche peut également être blanc, mais pas toute autre couleur. J'ai choisi le noir car je trouve que ça a l'air plus joli.

J'ai fourni le programme sous forme d'image et de texte car il n'y a pas de consensus clair sur la manière de noter les programmes Piet. N'hésitez pas à peser sur la méta discussion.

Mike Bufardeci
la source
14

JavaScript, 6 octets

Une fonction anonyme:

n=>n&1

Alternativement avec la même longueur:

n=>n%2

Les deux retourneront 0|1ce qui devrait remplir l'exigence de truthy|falseyvaleurs.

Essayez les deux versions en ligne

insertusernamehere
la source
Selon la réponse Java, cela ne répond pas aux exigences. JavaScript est-il différent à cet égard?
TheLethalCoder
4
La question indique clairement " Cela n'est pas obligatoire, vous pouvez utiliser d'autres valeurs de vérité / fausseté ", qui 0|1sont-elles, n'est-ce pas? @TheLethalCoder
insertusernamehere
1
Je ne sais pas s'ils sont en JavaScript, c'est ce que je vous demandais. Consultez la méta-q / a pour voir s'ils le sont. Je ne connais pas assez JavaScript pour savoir.
TheLethalCoder
4
JavaScript est beaucoup plus laxiste que Java. Il est heureux de traiter à peu près n'importe quoi comme n'importe quel type. En particulier, il est heureux de traiter les flottants comme des booléens (alors que Java émettra une erreur de compilation si vous faites cela). (Au fait, vous ne voulez peut-être pas savoir pourquoi cela renvoie un float plutôt qu'un entier.)
1
Bien :) Je n'étais pas assez familier pour me connaître, donc je me demandais.
TheLethalCoder
12

Japt , 1 octet

v

Retourne les 1nombres pairs, les 0impairs.

Essayez-le en ligne!

Explication

L'une des caractéristiques déterminantes de Japt est que, contrairement à la plupart des langages de golf, les fonctions n'ont pas d'arité fixe; c'est-à-dire que n'importe quelle fonction peut accepter un nombre quelconque d'arguments. Cela signifie que vous pouvez parfois omettre des arguments et Japt devinera ce que vous voulez. von numbers est une fonction qui accepte un argument et retourne 1si le nombre est divisible par l'argument, sinon 0. Par exemple:

v3

Ce programme sortira 1si l’entrée est divisible par 3 et 0sinon. Il se trouve que l'argument par défaut est 2, résolvant ainsi ce défi en un seul octet.


Solution alternative à 1 octet:

¢

¢convertit l'entrée en chaîne de base 2. Le -hdrapeau renvoie le dernier caractère de la chaîne.

Essayez-le en ligne!

Oliver
la source
11

brainfuck , 12 octets

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

Cela nécessite un interprète avec un ruban circulaire et des cellules qui s’enroulent. Celui sur TIO a 65 536 cellules de 8 bits et répond aux exigences.

I / O est en octets. Les entrées impaires correspondent à 0x00 (falsy), même les entrées à un octet différent de zéro (vérité).

Essayez-le en ligne!

Comment ça fonctionne

Nous commençons par lire un octet d’entrée avec ,et en ajoutant 2 à sa valeur avec ++. Nous verrons plus tard pourquoi l'incrémentation est nécessaire.

Ensuite, nous entrons dans une boucle qui avance vers la cellule de droite, lui ajoute 2 et répète le processus à moins que cela ne définisse la valeur de la cellule sur 0 .

Initialement, toutes les cellules sauf la cellule en entrée tiennent 0 . Si l'entrée est étrange, l'ajout de 2 ne la remettra jamais à zéro. Cependant, après avoir bouclé la bande 127 fois, la prochaine itération de la boucle définira la cellule située à droite de la cellule d'entrée sur 128 × 2 = 0 (mod 256) , ce qui entraînera la fin de la boucle. >++répète le corps de la boucle une fois de plus, donc la cellule suivante est également mise à zéro et ensuite imprimée avec ..

Par contre, si l'entrée est n et que n est pair, le code avant la boucle définit la cellule d'entrée sur n + 2 . Après avoir bouclé la bande (256 - (n - 2)) / 2 = (254 - n) / 2 fois, la cellule en entrée atteint 0 et la cellule à sa droite contiendra la valeur (254 - n) / 2 × 2 = 254 - n . Après avoir ajouté 2 avec >++, .sera imprimée 256 - n = -n (mod 256) , ce qui est différent de zéro car n est différent de zéro.

Enfin, notez que le second cas afficherait 258 - n = 2 - n (mod n) si nous n’incrémentions pas l’entrée avant la boucle, puisqu’il faudrait une boucle supplémentaire autour de la bande pour mettre à zéro la cellule d’entrée. Le programme échouerait donc pour l'entrée 2 .

Dennis
la source
11

Sinclair ZX81 BASIC 124 octets 114 octets 109 octets 57 50 octets BASIC numérotés

Selon les commentaires d'Adám ci-dessous, voici la dernière version candidate à la publication:

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

Il va maintenant PRINT 1pour même et 0pour impair. Zéro sorties.

Voici les anciennes versions de la liste symbolique à des fins de référence:

 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

Voici l'ancienne liste (v0.01) afin que vous puissiez voir les améliorations que j'ai apportées car non seulement cette nouvelle liste est-elle plus petite, mais elle est plus rapide:

 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

Et voici la v0.02 (en utilisant les sous-chaînes de 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

Shaun Bebbers
la source
1
Ce n'est pas kolmogorov-complexité . Il vous suffit de renvoyer 0 ou 1 pour une entrée donnée.
Adám
La question semble avoir été modifiée depuis ma première entrée, car elle <i> était lue </ i> comme vrai / faux, elle devait être renvoyée. En tant que tel, je peux simplifier davantage la liste symbolique.
Shaun Bebbers
1
Pourquoi avez-vous besoin de sortir à zéro? Tu ne peux pas juste PRINT (A-2*INT A/2)/A?
Adám
Dans la question initiale, qui avait été modifiée avec précaution, il était précisé que la valeur 0ne devait pas produire de TRUEou FALSE, par conséquent, ce 0n'était pas censé produire de résultat, alors je l'ai STOPenvoyé au programme. J'ai probablement interprété la question originale telle que postée par @SIGSEGV un peu trop littéralement. Oui, on peut optimiser et refactoriser, vous avez raison.
Shaun Bebbers
10

05AB1E , 1 octet

È

Assez auto-explantoire. Résultatsa % 2 == 0

Essayez-le en ligne!

Okx
la source
Éest un meilleur choix, à mon avis personnel; blague.
Magic Octopus Urn
7
J'assume les Éretours a % 2 == 1.
SIGSTACKFAULT
1
Si vous connaissez déjà l'opérateur
rendrez compte
8

Rétine, 3 octets

11

Le retour à la ligne est significatif. Prend une entrée unaire. Sorties 1 pour les nombres impairs, rien pour les nombres pairs. Essayez-le en ligne!

Neil
la source
Vous savez, vous pouvez simplement copier la réponse complète (avec le formatage nécessaire pour le saut de ligne suivant) de TIO.
Martin Ender
@MartinEnder Non, je ne savais pas.
Neil
C'est l'avant-dernier extrait lorsque vous générez le lien permanent.
Martin Ender
Oh, c'est un extrait entier? Je viens de voir la ligne de titre.
Neil
@Neil si vous cliquez dans l'extrait, il sera développé et vous verrez le corps
Dada
8

C ++, 25 octets

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

Ceci définit un modèle de variable ( une construction semblable à une fonction ) avec une valeur égale à l'opération au niveau du bit input&1. 0pour même les valeurs,1 pour les valeurs impaires. La valeur est calculée au moment de la compilation.

Nécessite C ++ 14.

Essayez-le en ligne!

Cássio Renan
la source
Woah, cela semble vraiment intelligent. Je n'ai jamais vu une réponse comme celle-là auparavant! Comment ça s'appelle?
DJMcMayhem
@DJMcMayhem C'est une utilisation simple des modèles de variables de C ++ 14 . Ce n'est pas si malin, cependant: Une fonction simple aproach ( int o(int v){return v&1;}) prendrait le même nombre d'octets, à la différence que la valeur serait calculée à l'exécution.
Cássio Renan
Je ne pense pas que cela soit réellement pris en compte, car le code serait simplement compilé dans un retour 1 ou un retour 0. Exécuter à nouveau le même code compilé ne donnerait jamais un résultat différent, ce n'est pas une fonction de cette manière. Plus proche d'une constante.
Drunken Code Monkey
@DrunkenCodeMonkey l'heure d'évaluation n'a pas d'importance. Ce qui compte, c’est que je puisse passer des arguments à la construction (fournir une entrée), qui restituera des résultats (restituera une sortie). De votre point de vue, aucune fonction ne serait qualifiable, étant donné que, sans une main()construction semblable à celle du programme, le programme serait simplement compilé pour return 0ne pas être compilé du tout. Cela contredit le meta post que j'ai lié à dans cette réponse.
Cássio Renan
1
La fonction lambda en C ++ sauve 3 octets [](int x){return x%2;} Essayez-le en ligne
Johan du Toit
8

Pyth, 3 2 octets

Je l'ai fait. J'ai joué au golfeur. Pour une fois, c'est une solution non triviale qui a réussi à obtenir le dernier octet!

!F

Vérité sur les valeurs paires (non compris 0, mais ce n'est pas positif, alors ...).

Explication:

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

Par exemple !!2 = !0 = 1, et!!!3 = !!0 = !1 = 0

Je garderai ma bibliothèque de solutions à 3 octets ci-dessous.

"Il existe une autre réponse avec plusieurs solutions à 3 octets, mais elle est loin d’être complète. Ajoutons encore quelques solutions:

@U2

Indexe la liste de manière [0,1]modulaire, donnant des valeurs de vérité sur des entrées impaires.

}2P

Est-ce que 2 est dans la factorisation principale de l'entrée? (Vérité sur même)

ti2

Le GCD est-il de 2 et l'entrée 2? (Vérité sur même)

gx1

XOR-ing l'entrée avec 1 ne la diminue-t-elle pas? (Vérité sur même)

q_F

Fondamentalement Q == Q*-1^Qoù Q est l'entrée, mais fait par une boucle. (Vérité sur même)

_FI

Comme ci-dessus.

g^_

Traduit en Q <= -Q^Q(vérité sur même)

Notez que toutes les solutions ci-dessus impliquant gfonctionneront avec <pour la vérité-fausseté renversée.)

Steven H.
la source
1
Oui, c'est plutôt malin :)
Digital Trauma
7

C #, 8 octets

n=>n%2<1

Compile a Func<int, bool>.

Ou si une fonction anonyme n'est pas autorisée, cette méthode pour 21 octets:

bool p(int n)=>n%2<1;
TheLethalCoder
la source
@obarakon Pas en C #, voir cette réponse en méta . Fondamentalement, if (1)ne pas compiler.
TheLethalCoder
il n'y a pas if (1)dans votre code?
VOUS
1
@YOU Correct, lisez le meta post pour comprendre ce que je voulais dire par là.
TheLethalCoder
2
@YOU, la définition acceptée (sur ce site) d'une valeur vérité / falsey est: Si la valeur est if (x)vraie, alors xest une valeur vérité. Si le résultat est faux, alors c'est false. Ainsi, dans le code pseudo: if x, disp(true), else disp(false). Si cela ne compile pas, alors xne peut pas être utilisé. Dans MATLAB et dans plusieurs autres langues, tout ce qui est différent de zéro est considéré comme vrai, tandis que 0et falsesont considérés comme faux. La chaîne Helloest donc une valeur de vérité dans MATLAB. Cependant, certaines langues exigent que la valeur soit une valeur booléenne (le cas ici), elle doit donc être convertie en une valeur booléenne, en utilisant <1.
Stewie Griffin
Je vois. merci pour les explications.
VOUS
7

Pyth, 3

Je m'attendais à ce que pyth ait un octet intégré de 1 ou 2 pour cela. Au lieu de cela, voici les meilleures solutions que j'ai pu trouver:

%Q2

ou

.&1

ou

e.B
Trauma numérique
la source
2
Pas intégré, mais il existe une solution à 2 octets .
Steven H.
7

TIS-100, 39 octets

Bien entendu, il s’agit plus précisément d’un programme pour l’architecture du nœud d’exécution de base T21, tel qu’il est émulé par l’émulateur TIS-100.

Je vous renvoie à cette réponse pour une explication fantastiquement détaillée de la notation pour les programmes TIS-100, ainsi que de leur structure.

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

Explication:

@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

En pseudocode, cela ressemblerait à quelque chose comme:

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

Le T21 n'a pas de types booléens ni de valeurs vérité / fausseté. Le programme renvoie donc -1 pour les nombres impairs et 0 pour les nombres pairs, sauf si l'entrée précédente était impaire. Dans ce cas, elle renvoie -1 pour les nombres pairs et 0 pour les impairs. chiffres - si cela vous dérange, ceci est une réponse de programme complet, vous pouvez donc simplement redémarrer votre T21 entre deux utilisations.

Tutleman
la source
Je pensais justement à TIS-100, le jeu de puzzle Zachtronics, puisque je voulais l'acheter la semaine dernière. TIS est-il aussi un langage réel ou existe-t-il uniquement dans ce jeu vidéo?
Seshoumara
@seshoumara À ma connaissance, il n'existe que dans le jeu. L’ensemble de l’architecture des machines dans TIS est assez typique, et ce langage de type Assembly s’y rattache.
Steenbergh
Je peux confirmer, cela n’existe que dans le jeu (et en fait, même dans l’univers, c’est une architecture étrange et bizarre). J'ai écrit la réponse à laquelle Turtleman s'est lié comme s'il y avait de vrais dispositifs TIS, mais je ne l'ai fait que dans mon personnage, pour le plaisir.
undergroundmonorail
2
@Blacksilver Le véritable défi, à mon avis, serait de répondre à Spacechem!
Tutleman
1
J'ai mis en place un émulateur TIS pour TIO, vous pouvez donc l' essayer en ligne!
Phlarx
6

Gelée , 1 octet

Essayez-le en ligne!

Juste un autre construit.

Pour les personnes qui ne connaissent pas Jelly: elle est assez capable d’inférer les bits de code manquants. Il n’ya donc pas beaucoup de différence syntaxique entre un extrait de code, une fonction et un programme complet; l'interprète ajoutera automatiquement du code pour entrer les arguments appropriés et affichera le résultat. C'est très pratique lorsqu'il s'agit de règles PPCG, qui autorisent des fonctions et des programmes, mais interdisent les extraits. Dans le lien TIO, je considère cela comme une fonction et l’exécute sur chaque entier compris entre 1 et 20 inclus, mais cela fonctionne également comme un programme complet.

Gelée , 2 octets

&1

Essayez-le en ligne!

C'est assez court sans construit, aussi. (Ceci est bitwise-AND avec 1.)


la source
2
Toutes ces langues semblent un peu trompeuses pour ces questions lol
Drunken Code Monkey
6

7 , 18 caractères, 7 octets

177407770236713353

Essayez-le en ligne!

7 n'a rien qui ressemble à une déclaration if normale et a plus d'un moyen idiomatique de représenter un booléen. En tant que tel, il est difficile de savoir ce qui compte comme vérité et falsey, mais ce programme utilise 1comme chaîne impaire et nulle la chaîne paire (les valeurs de vérité et de falsey pour Perl, dans lesquelles l'interpréteur est écrit). (Il est assez facile de changer cela; la sortie impaire est spécifiée avant les 7 premiers, la sortie paire est spécifiée entre les deux premiers 7. Il est possible qu'un changement de format de sortie soit éventuellement nécessaire pour gérer d'autres types de sortie; cependant, j'ai utilisé les deux les sorties distinctes les plus courtes ici.)

7 utilise un codage octal compressé dans lequel trois octets de source représentent huit octets de programme, ainsi 18 caractères de source sont représentés dans 7 octets sur disque.

Explication

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

Comme beaucoup de formats de sortie, "output integers" annule un nombre quelconque de niveaux d'échappement avant la sortie; ainsi 40, qui combinent une opération d'échange et d'échappement, peuvent être utilisés à la place d' 405une opération d'échange (qui est une opération d'échange et d'échappement suivie d'un non-évasement). Si vous utilisiez un format de sortie instable en ce qui concerne l’échappement, vous auriez besoin de la405 ce . (Incidemment, la raison pour laquelle nous avions besoin d'échapper à la chaîne de format à l'origine est que si la première sortie contient des caractères non représentables, elle oblige automatiquement le format de sortie 7. L'échappement permet de supprimer les caractères non représentables et de permettre la sélection du format 0).

Parmi les six éléments de pile initiaux, le plus important est le programme principal (et est consommé par 13le premier élément à exécuter); le second est celui 023qui sélectionne le format de sortie et demande une entrée, et qui est consommé par cette opération; le troisième est consommé en tant qu'effet secondaire de l' 3opération (il sert à rejeter des éléments de pile en plus de produire une sortie); le quatrième, 40est le corps de la boucle (et est consommé par celui 5qui exécute la boucle); et les cinquième et sixième sont échangés un nombre de fois égal à l'entrée (finissent donc dans leurs positions d'origine si l'entrée est paire, ou dans les positions de chacun si l'entrée est impaire).

Vous pouvez jouer avec un personnage en changeant le début 177de 17(et en vous basant sur un sixième élément de pile implicite vide), mais cela changerait la parité des sorties en une méthode moins idiomatique que celle qui est inhabituelle, et cela ne ferait pas économiser. un octet entier (la source a encore sept octets de long). En tant que tel, j’ai décidé d’utiliser la forme de sortie la plus naturelle, car elle n’a pas de résultats pires.


la source
6

Brain-Flak , 22 à 20 octets

Voici annother cool réponse à Brain-Flak vous devriez également vérifier

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

Essayez-le en ligne!

Explication

Pour commencer, nous allons faire une copie de notre contribution avec (({})).

La copie du bas servira de valeur de vérité tandis que la copie du haut sera utilisée pour le traitement réel. Ceci est fait parce que nous avons besoin que l'entrée soit sur le dessus et il est plutôt fastidieux (deux octets supplémentaires!) De mettre un 1 sous l'entrée.

Puis on commence une boucle {({}[()]<>)}. Il s’agit d’une simple modification de la boucle de compte à rebours standard qui permute les piles à chaque décrément.

Puisqu'il y a deux piles, un nombre pair finira sur le haut de la pile sur laquelle il a commencé, tandis qu'un nombre impair se terminera sur la pile opposée. La valeur copiée restera en place et servira donc de marqueur du début.

Une fois que nous avons terminé avec la boucle, nous avons un 0(à l’origine, l’entrée) assis au-dessus d’une valeur de vérité (la copie de l’entrée) ou de falsy (pile vide). Nous avons également la valeur opposée sur l'autre pile.

Nous devons nous débarrasser de ce 0qui peut être supprimé par {}ou <>. Les deux semblent fonctionner et donnent des résultats opposés, mais {}provoque une valeur de fausseté égale à zéro, alors que cela devrait rendre la vérité. Cela est dû au fait que notre valeur "vérité" est une copie de l'entrée et que zéro est la seule entrée pouvant être falsifiée.

Ce problème est résolu en mettant fin au programme avec <>.

(Bien entendu, conformément à la spécification, techniquement, je ne suis pas obligé de prendre en charge zéro, mais deux options que je préférerais prendre en charge.)

Assistant de blé
la source
6

BitCycle , 19 17 16 octets

?ABv
 / \ <
!+ <

Essayez-le en ligne!

Argh, j'ai l'impression qu'il y a une solution de 18 octets flottant à portée de main :( Haha! -2 octets en utilisant un +pour rediriger des bits provenant de différentes directions.

Cela donne toujours l'impression qu'il y a trop de blancs (6 octets en tout!)

Explication:

?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
Jo King
la source
5

Lot, 16 octets

@cmd/cset/a%1%%2

Sorties 1 pour impair, 0 pour pair. La version alternative à 16 octets fonctionne également sur les nombres négatifs:

@cmd/cset/a"%1&1

17 octets à la sortie 1 pour pair, 0 pour impair:

@cmd/cset/a"~%1&1
Neil
la source
Votre programme fait uniquement écho au résultat MOD, ce qui est incorrect. La question dit que le format de sortie devrait être " (Input):(Output)"
stevefestl
5

Excel, 10 octets

=MOD(A1,2)

Ou:

=ISODD(A1)

Pour sortie de:

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

Urne Magique De Pieuvre
la source
1
Je n'ai jamais vu exceller en code golf ...
programmer5000
1
Autre version Excel VBA de ce code, ?[A1]mod 2; un VBE anonyme imite une fonction de fenêtre qui prend des entrées [A1]et des sorties dans VBE 0imite une fenêtre avec (falsey) représentant pair et 1(vérité) représentant impair
Taylor Scott
5

JSFuck , 9685 9384 6420 octets

JSFuck est un style de programmation ésotérique et éducatif basé sur les parties atomiques de JavaScript. Il utilise seulement six caractères différents pour écrire et exécuter du code.

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

Sorties 1 pour impair et 0 pour pair.

Essayez-le en ligne!

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

Powelles
la source
Je pense que vous pouvez sortir 0/1 au lieu de vrai / faux. alert(prompt()%2)semble être 9384 caractères.
ETHproductions
J'ai joué au golf jusqu'à 6497 personnages . Cela équivaut à le code JavaScript suivant: []["fill"]["constructor"]("return this%2")["call"]. filla été choisi car il ne coûte que 81 caractères, la moins importante des méthodes de tableau. En outre, vous pourriez soutenir que JSFuck n'est pas un langage séparé, mais plutôt un sous-ensemble de JavaScript.
Luc
@Luke Je ne parviens pas à faire figurer cela dans l'extrait de code et, comme il ne s'agit que d'une farce, je vais m'en tenir à la version basée sur l'alerte, à moins que vous ne puissiez m'aider à comprendre ce que je fais de mal.
Powelles
@Luke Remplacez l'espace par un +pour sauvegarder 77 octets supplémentaires ;-) Et personnellement, je pense que répondre à JSF est correct; c'est fondamentalement un dialecte de JS.
ETHproductions
Le code que j'ai collé est comme un nom de fonction. Il suffit d’ajouter les parenthèses et d’y inclure l’argument.
Luc
5

Bash + bc, 21 14 11 9 octets

bc<<<$1%2

Lit les entrées de ligne de commande, développe la valeur dans la chaîne avec l'opération mod et dirige la chaîne vers bc pour le calcul. Sorties 1 pour impair, 0 pour pair.

Cas de test:

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

Edit: sauvegardé 7 octets grâce à @ ais523
Edit 2: sauvegardé 3 octets supplémentaires grâce à @Dennis
Edit 3: sauvegardé 2 autres grâce à @Dennis

Christopher Pitts
la source
2
Bienvenue sur le site!
DJMcMayhem
Peut-être pourriez-vous utiliser un argument de ligne de commande pour bash (tel que $1) plutôt que de passer des octets à le lire à partir de stdin?
@ ais523: bonne suggestion! J'aurais dû penser à le faire dans un script plutôt que sur la ligne de commande.
Christopher Pitts
Vous pouvez raccourcir cela pour bc<<<$1%2.
Dennis
@ Dennis: Merci! J'ai essayé plus tôt, mais je n'ai pas réussi à bien comprendre la syntaxe.
Christopher Pitts