Skip to content

Walkthrough ‐ Classic III.C: XOR Frugality

Glen Evenbly edited this page Jul 6, 2024 · 2 revisions

Learning Objectives

  • The player is challenged construct a logical XOR without the use of inversion gates.
  • Similar to the preceding level, this level also touches on the topic of universality in logic gates; many of the components in The Qubit Factory are not strictly necessary as an equivalent result could be produced using combinations of other components.

Solution

  1. Bits from input B are split into two different channels, via a control with a combiner gate, depending on the bits from input A.
  2. Bits in the lower channel are inverted through use of a re-zero and a creation component.

image

Level File (copy then paste into Qubit Factory)

{"name":"CIII.C: XOR Frugality","tag":"classPuzzle3B","version":"v1.1.1","tiles":[55,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,21,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,21,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,21,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,21,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,23,22,22,22,40,84,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,24,89,22,44,22,22,22,89,22,22,22,22,22,22,22,25,-1,-1,-1,21,-1,-1,21,24,22,22,52,22,25,-1,-1,-1,-1,-1,21,-1,-1,24,26,-1,-1,43,47,22,80,84,-1,44,22,22,22,22,22,44,22,94,21,-1,-1,-1,23,26,24,82,22,22,26,-1,-1,-1,-1,-1,-1,-1,21,21,-1,-1,-1,-1,84,46,25,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,21,21,-1,-1,-1,-1,54,42,26,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,21,21,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,21,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,57],"gates":[[0,13,"cCreate","free",3,1,0,1,94],[0,0,"cCreate","free",1,0,0,1,94],[18,8,"compare","free",3,0.785398163397,0,4,-1],[18,13,"cCreate","free",3,3,0,2,94],[4,5,"switch","free",0,0,0,1,-1],[4,6,"cCombine","free",0,0,0,0,-1],[4,6,"cCombine","free",1,0,1,0,-1],[5,5,"trash","free",0,0.785398163397,0,0,-1],[16,8,"cCombine","free",0,0,0,0,-1],[2,6,"delay","free",0,0,0,4,-1],[5,10,"trash","free",0,0.785398163397,0,0,-1],[6,10,"cCombine","free",2,0,0,0,-1],[6,10,"cCombine","free",3,0,1,0,-1],[5,11,"cCreate","free",0,1,0,0,-1],[6,11,"switch","free",2,0,0,1,-1],[4,8,"switch","free",3,1,0,1,-1],[5,8,"cCombine","free",0,0,0,0,-1],[5,8,"cCombine","free",3,0,1,0,-1],[7,8,"sync","free",0,0.785398163397,0,0,-1],[7,9,"sync","free",2,0,0,0,-2],[8,8,"trash","free",0,0.785398163397,0,0,-1],[10,8,"cCombine","free",0,0,0,0,-1],[8,6,"delay","free",0,0,0,4,-1],[8,7,"cInvert","free",0,0,0,1,-1]]}

Clone this wiki locally