J'ai été coincé sur un bonus mon professeur donné pendant quelques jours maintenant: p>
J'ai essayé de nombreuses combinaisons différentes et j'ai également essayé d'écrire la logique de l'opérateur ^, mais cela n'a pas travaillé. Toute astuce ou aide serait très appréciée! P>
3 Réponses :
L'opérateur XOR peut en fait être écrit comme une combinaison de ces deux, je vais mettre cela en deux étapes: p>
un NAND B = NON (A et B) P>
un XOR B = (une NAND (NAND B)) NAND (B NAND (A NAND B)) P> blockQuote>
Comme décrit avant de mathématiques: p>
https://math.stackexchange.com / QUESTIONS / 38473 / IST-XOR-A-Combinaison-de-et-- non-opérateurs P>
C'est beaucoup d'opérations!
Je vais volontiers golf que dans quelques jours, quand il a passé sa date de soumission.
@Jerryjeremiah La raison de la mise en œuvre de cela en termes de NAND seule est que son moins cher (dans le matériel) d'avoir beaucoup d'une porte d'une porte que de petits nombres de différents types de portes. Vous ne réécrivez pas XOR en termes de NAND, car vous essayez d'optimiser une implémentation logicielle.
@cheppner Bien sûr, mais Wikipedia a une version de quatre portes NAND. Je suis d'accord pour dire qu'une version de cinq portes implémente la "définition" de XOR plus idiomatiquement, mais il reste encore beaucoup plus de portes ...
Tout d'abord, supposons que vous ayez chacun des Ensuite, voir si vous pouvez trouver un moyen d'exprimer Enfin, combinez ces idées ensemble. P>
bonne chance! p> & code>,
| code> et
~ code> opérateurs disponibles pour vous. Pourriez-vous mettre en œuvre
^ code> de cette façon? P>
| code> purement en termes de
et code> et
~ p>. p>.
Quelqu'un a déjà posté la réponse, mais j'aime votre style parce que cela me fait comprendre en la prouvant moi-même. Je vais essayer cela puis voir si je peux arriver à la réponse par moi-même. Merci beaucoup!
OP demandée "Toute astuce ou aide serait très appréciée!" Et ce post répond que.
Vous pouvez essayer de dessiner les tables de vérité pour xor strong>, et strong>, et, ou strud> Suivant Trouver comment utiliser (un Il n'y a pas mais em> dans l'algèbre booléenne de sorte qu'il devient un et strong> qui conduit à ceci: p> | code> et
& code> pour créer ce p>
A | B code> Donnez toutes les trois premières lignes correctes ,
A & B code> Donnez à l'autre ligne. Si nous nions, il peut être utilisé pour masquer les lignes recherchées! Nous pourrions donc expression xor comme: p>
~(~a&~b)&~(a&b)
Lire la question ;-)
Law de De-Morgans pourrait aider
est Xor une combinaison de et non des opérateurs? a>
@Edheal je l'ai vu plus tôt sur une autre question, mais je ne pouvais pas trouver la preuve XOR, je vais le regarder à nouveau, merci!
en.wikipedia.org/wiki/xor_gate#/media/file: Xor_from_nand.svg
J'ai omis de saisir la pertinence de 2-complément dans ce contexte.