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


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

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


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?


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 .


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.


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


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


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]

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;}

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.



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


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!


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 .


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


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


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!


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!


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


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;

@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

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.


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


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.


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


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

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

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


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()))


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


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.