Écrivez un programme ou une fonction qui accepte la liste des sorties d'une fonction logique et sort le code LaTeX pour sa table de vérité.
Les entrées doivent être étiquetées comme des lettres minuscules a-z
et la sortie doit être étiquetée comme F
. La longueur de la liste des entrées sera toujours inférieure à 2^25
, ce qui signifie que le nombre d'entrées sera toujours inférieur à 25, vous pouvez donc utiliser des lettres de l'alphabet minuscule pour les noms des entrées.
Contribution
Un certain nombre n
d'entrées et une liste de longueur 2^n
de nombres binaires qui représentent les sorties d'une fonction logique.
Production
Code LaTeX qui produit la table de vérité pour cette fonction. Les valeurs d'entrée et de sortie doivent être centrées sur des lignes. Il doit y avoir une ligne entre l'en-tête du tableau et ses valeurs et entre les entrées et les sorties, le code doit donc être similaire à celui ci-dessous.
\begin{tabular}{c * <NUMBER OF INPUTS>|c}
<INPUTS>&F\\
\hline
<INPUT VECTOR i>&<OUTPUT>\\
\end{tabular}
Exemple
Contribution:
2
[0, 0, 0, 1]
Production:
\begin{tabular}{cc|c}
a & b & F \\
\hline
0 & 0 & 0 \\
0 & 1 & 0 \\
1 & 0 & 0 \\
1 & 1 & 1 \\
\end{tabular}
Qui, affiché dans LaTeX, montre la table de vérité suivante
Règles générales
- C'est le code-golf , donc la réponse la plus courte en octets l'emporte.
- Les failles par défaut sont interdites.
ccccc
au lieu decc
, mais laissez|c
tranquille ... Et oui, dans ce tableau, tous les espaces et les retours à la ligne sont facultatifs, mais j'éviterais les lignes vides.Réponses:
Fusain , 70 octets
Essayez-le en ligne! Le lien est vers la version détaillée du code. Explication:
Enregistrez cette chaîne dans une variable pour éviter la duplication.
Imprime la
\tabular{*2c|c}
ligne initiale (2 ou quelle que soit la valeur de la première entréeq
).Obtenez les premières
q
lettres de la variable prédéfinieb
et insérez des&
s entre elles, puis ajoutez le&F\\
et imprimez également\hline
sur la ligne suivante.Faites une boucle sur les caractères de la deuxième entrée. Pour chacun, son index est converti en binaire de longueur
q
, le caractère est concaténé, le résultat est joint à&
s et\\
est ajouté. Les chaînes résultantes sont implicitement imprimées sur des lignes distinctes.Imprimez le
\endtabular
. (Le⁰
n'est qu'un séparateur car le déverbosificateur oublie d'insérer un¦
.)la source
Python 2 , 153 octets
Essayez-le en ligne!
Sorties comme
\tabular
et\endtabular
sont utilisés comme plus courts\begin{tabular}
et\end{tabular}
, selon cette astuce de golf LaTeX . Le*2c
est un raccourci pour définir 2 colonnes.la source
Haskell,
164155octetsEssayez-le en ligne!
Modifier: utiliser à la
\tabular
place de\begin{tabular}
(volé dans la réponse de @ xnor ).la source
Python 2 ,
192168166 octetsEssayez-le en ligne!
Jolie version imprimée:
Python 2 ,
234229218209205 205203 octetsEssayez-le en ligne!
la source
Proton , 142 octets
Essayez-le en ligne!
La sortie est sous forme de LaTeX golfée; merci à xnor pour cette astuce!
Cela devrait être plus court que la réponse Python de xnor car Proton ne devrait en théorie jamais perdre contre Python lol (en pratique, je suis mauvais xD). Je peux voler des astuces à xnor; PGéré pour être plus court en transformant certaines choses en variables, ce que je viens de remarquer que xnor a également fait: P
Et voilà, -6 octets en utilisant quelques astuces de golf Proton.
la source
R ,
196 187171 octetsEssayez-le en ligne!
Sortie similaire à la réponse au charbon .
expand.grid
de cette réponse .Pour mémoire, l'utilisation à
xtable
partir du package éponyme n'est pasbeaucoupplus courte car il faut spécifier beaucoup d'options pour correspondre à la spécification, en plus d'inclure le package:R , 187 octets
Essayez-le en ligne!
la source