<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>qis on Everyday Is A School Day</title>
    <link>https://www.kenkoonwong.com/tags/qis/</link>
    <description>Recent content in qis on Everyday Is A School Day</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <lastBuildDate>Wed, 29 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://www.kenkoonwong.com/tags/qis/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Exploring and Learning Quantum Computing Part 1</title>
      <link>https://www.kenkoonwong.com/blog/qc1/</link>
      <pubDate>Wed, 29 Apr 2026 00:00:00 +0000</pubDate>
      
      <guid>https://www.kenkoonwong.com/blog/qc1/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Dipping my toes into quantum computing 🌊 — circuits, gates, superposition. Still very much a beginner, but hands-on experiments with qiskit + R&amp;rsquo;s reticulate made it click a little more. Baby steps!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&#34;quantum.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;




&lt;h2 id=&#34;motivations&#34;&gt;Motivations
  &lt;a href=&#34;#motivations&#34;&gt;&lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;Alright, we&amp;rsquo;ve done molecular dynamic simulation and then the post-processing part where we used PBSA/GBSA. I was told that quantum mechanics can more accurately estimate the interaction between these interacting molecules. What an opportunity to dive into quantum computing! It&amp;rsquo;s going to a bumpy ride because my knowledge for all of these are very limited, let&amp;rsquo;s break these into small pieces and learn! In this blog, why don&amp;rsquo;t we program a &amp;ldquo;Hello World&amp;rdquo; version and see if we can understand it a bit better. The main language this was programmed in is in Python, but you know me, let&amp;rsquo;s bring this over to R with reticulate and see if we can have fun with it!&lt;/p&gt;




&lt;h2 id=&#34;objectives&#34;&gt;Objectives:
  &lt;a href=&#34;#objectives&#34;&gt;&lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;&lt;/a&gt;
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&#34;#qc&#34;&gt;Quantum Computing Basics&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;#classic&#34;&gt;Learn Quantum Computing with Classic&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&#34;#install&#34;&gt;Installation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;#first&#34;&gt;First Simple Example&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;#degree&#34;&gt;Probability In Degrees&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;#gates&#34;&gt;Gates&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&#34;#cnot&#34;&gt;CNOT&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;#cheatsheet&#34;&gt;Cheat Sheet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;#opportunities&#34;&gt;Oppotunities For Improvement&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;#lessons&#34;&gt;Lessons Learnt&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2 id=&#34;qc&#34;&gt;Quantum Computing
  &lt;a href=&#34;#qc&#34;&gt;&lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;Quantum computing is a new type of computing that uses the principles of quantum mechanics — the physics of tiny particles like electrons and photons — to process information in fundamentally different ways than regular computers. While a normal computer stores information as bits (either a 0 or a 1), a quantum computer uses qubits, which can be 0, 1, or both at the same time thanks to a property called superposition. On top of that, qubits can be entangled, meaning two qubits can be linked so that the state of one instantly affects the other, no matter the distance. This lets quantum computers explore many possible solutions to a problem simultaneously, rather than one at a time — making them potentially incredibly powerful for specific tasks like breaking encryption, simulating molecules for drug discovery, or optimizing complex systems. Think of it this way: a regular computer tries every door in a maze one by one, while a quantum computer can try all the doors at once. Spooky! 👻&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ll be honest, I still don&amp;rsquo;t understand all these. But that&amp;rsquo;s OK, let&amp;rsquo;s do some Hello World programming in quantum computer lanauge and see if we can retro-learn the fundamentals! Even better, let&amp;rsquo;s take a look at classic computing simulation and see if we can use that to &amp;ldquo;understand&amp;rdquo; what&amp;rsquo;s underneath the quantum computing package.&lt;/p&gt;




&lt;h2 id=&#34;classic&#34;&gt;Learn Quantum Computing with Classic Simulation
  &lt;a href=&#34;#classic&#34;&gt;&lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;&lt;/a&gt;
&lt;/h2&gt;




&lt;h3 id=&#34;install&#34;&gt;Installation
  &lt;a href=&#34;#install&#34;&gt;&lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;&lt;/a&gt;
&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;library&lt;/span&gt;(reticulate)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;library&lt;/span&gt;(tidyverse)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;py_install&lt;/span&gt;(&lt;span style=&#34;color:#d14&#34;&gt;&amp;#34;qiskit&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;py_install&lt;/span&gt;(&lt;span style=&#34;color:#d14&#34;&gt;&amp;#34;qiskit_aer&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Pretty straightforward, let&amp;rsquo;s install these.&lt;/p&gt;




&lt;h3 id=&#34;first&#34;&gt;First Simple Example
  &lt;a href=&#34;#first&#34;&gt;&lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;&lt;/a&gt;
&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;library&lt;/span&gt;(reticulate)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;library&lt;/span&gt;(tidyverse)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;QuantumCircuit &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;import&lt;/span&gt;(&lt;span style=&#34;color:#d14&#34;&gt;&amp;#34;qiskit&amp;#34;&lt;/span&gt;)&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;QuantumCircuit
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;AerSimulator &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;import&lt;/span&gt;(&lt;span style=&#34;color:#d14&#34;&gt;&amp;#34;qiskit_aer&amp;#34;&lt;/span&gt;)&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;AerSimulator
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;qubit &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#099&#34;&gt;10&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;n &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#099&#34;&gt;1000&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;p &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#099&#34;&gt;0.5&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;qc &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;QuantumCircuit&lt;/span&gt;(qubit)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;for &lt;/span&gt;(i in &lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;c&lt;/span&gt;(&lt;span style=&#34;color:#099&#34;&gt;0&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;(qubit&lt;span style=&#34;color:#099&#34;&gt;-1&lt;/span&gt;))) {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  qc&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;h&lt;/span&gt;(qubit&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;as.integer&lt;/span&gt;(i))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;qc&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;measure_all&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;qc&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;draw&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;##          ┌───┐ ░ ┌─┐                           
##     q_0: ┤ H ├─░─┤M├───────────────────────────
##          ├───┤ ░ └╥┘┌─┐                        
##     q_1: ┤ H ├─░──╫─┤M├────────────────────────
##          ├───┤ ░  ║ └╥┘┌─┐                     
##     q_2: ┤ H ├─░──╫──╫─┤M├─────────────────────
##          ├───┤ ░  ║  ║ └╥┘┌─┐                  
##     q_3: ┤ H ├─░──╫──╫──╫─┤M├──────────────────
##          ├───┤ ░  ║  ║  ║ └╥┘┌─┐               
##     q_4: ┤ H ├─░──╫──╫──╫──╫─┤M├───────────────
##          ├───┤ ░  ║  ║  ║  ║ └╥┘┌─┐            
##     q_5: ┤ H ├─░──╫──╫──╫──╫──╫─┤M├────────────
##          ├───┤ ░  ║  ║  ║  ║  ║ └╥┘┌─┐         
##     q_6: ┤ H ├─░──╫──╫──╫──╫──╫──╫─┤M├─────────
##          ├───┤ ░  ║  ║  ║  ║  ║  ║ └╥┘┌─┐      
##     q_7: ┤ H ├─░──╫──╫──╫──╫──╫──╫──╫─┤M├──────
##          ├───┤ ░  ║  ║  ║  ║  ║  ║  ║ └╥┘┌─┐   
##     q_8: ┤ H ├─░──╫──╫──╫──╫──╫──╫──╫──╫─┤M├───
##          ├───┤ ░  ║  ║  ║  ║  ║  ║  ║  ║ └╥┘┌─┐
##     q_9: ┤ H ├─░──╫──╫──╫──╫──╫──╫──╫──╫──╫─┤M├
##          └───┘ ░  ║  ║  ║  ║  ║  ║  ║  ║  ║ └╥┘
## meas: 10/═════════╩══╩══╩══╩══╩══╩══╩══╩══╩══╩═
##                   0  1  2  3  4  5  6  7  8  9
&lt;/code&gt;&lt;/pre&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;simulator &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;AerSimulator&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;job &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt; simulator&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;run&lt;/span&gt;(qc, shots&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt;n)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;result &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt; job&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;result&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;counts &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt; result&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;get_counts&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;df &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;tibble&lt;/span&gt;(pattern&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;names&lt;/span&gt;(counts), freq&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;map_dbl&lt;/span&gt;(.x &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt; pattern, .f&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=~&lt;/span&gt;counts[[.x]]))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;df &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;|&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;mutate&lt;/span&gt;(total &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;map_dbl&lt;/span&gt;(.x&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt;df&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;pattern, .f&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=~&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;str_split&lt;/span&gt;(.x, &lt;span style=&#34;color:#d14&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;) &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;|&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;unlist&lt;/span&gt;() &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;|&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;as.numeric&lt;/span&gt;() &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;|&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;sum&lt;/span&gt;())) &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;|&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;group_by&lt;/span&gt;(total) &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;|&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;summarize&lt;/span&gt;(freq &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;sum&lt;/span&gt;(freq))
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;## # A tibble: 9 × 2
##   total  freq
##   &amp;lt;dbl&amp;gt; &amp;lt;dbl&amp;gt;
## 1     1    11
## 2     2    30
## 3     3   125
## 4     4   208
## 5     5   228
## 6     6   229
## 7     7   116
## 8     8    45
## 9     9     8
&lt;/code&gt;&lt;/pre&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;rbinom&lt;/span&gt;(n,qubit,p) &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;|&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;table&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;## 
##   1   2   3   4   5   6   7   8   9 
##   9  39 118 219 250 192 117  48   8
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Wow, lots of code. Let&amp;rsquo;s break it down. First, we create a quantum circuit with 10 qubits. Then we apply the Hadamard gate (h) to each qubit, which puts them into a superposition state where they have an equal probability of being measured as 0 or 1. After that, we measure all the qubits and run the simulation using the Aer simulator. Finally, we get the counts of the measurement outcomes and summarize them by the total number of 1s in the output pattern. We also compare this with a binomial distribution to see if the results match our expectations. 🙌 They did!&lt;/p&gt;
&lt;p&gt;Hadamard gate basically puts all those qubits (you saw my for loop) to superposition state, which means that each qubit has a 50% chance of being measured as 0 or 1. In this case, since we have 10 qubits, the total number of 1s in the output pattern can range from 0 to 10, and we expect to see a distribution that follows a binomial distribution with parameters n=10 and p=0.5.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s look at the 10 raw results:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;num &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;names&lt;/span&gt;(counts)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;for &lt;/span&gt;(i in num[1&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#099&#34;&gt;10&lt;/span&gt;]) {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;print&lt;/span&gt;(&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;paste0&lt;/span&gt;(i, &lt;span style=&#34;color:#d14&#34;&gt;&amp;#34;: &amp;#34;&lt;/span&gt;, counts[i]))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;## [1] &amp;#34;0000000001: 1&amp;#34;
## [1] &amp;#34;0000000011: 2&amp;#34;
## [1] &amp;#34;0000000100: 3&amp;#34;
## [1] &amp;#34;0000000101: 3&amp;#34;
## [1] &amp;#34;0000000110: 2&amp;#34;
## [1] &amp;#34;0000000111: 1&amp;#34;
## [1] &amp;#34;0000001011: 1&amp;#34;
## [1] &amp;#34;0000001110: 3&amp;#34;
## [1] &amp;#34;0000001111: 1&amp;#34;
## [1] &amp;#34;0000010000: 1&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Here is the interesting thing, this simulation stores the pattern of the simulation. For example, there were 1 count of 0000000001, and 2 counts for 0000000010, 2 counts for 0000000011 etc. So you actually know what exact patterns it produced when we&amp;rsquo;re measuring it! This is super cool. This is just a peek under the hood type of practice. Just curious what each variables contain etc.&lt;/p&gt;
&lt;p&gt;If we were to draw the circuit out, it would look like this :&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;qc&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;draw&lt;/span&gt;(output&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#d14&#34;&gt;&amp;#39;text&amp;#39;&lt;/span&gt;,fold&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#099&#34;&gt;60&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;##          ┌───┐ ░ ┌─┐                           
##     q_0: ┤ H ├─░─┤M├───────────────────────────
##          ├───┤ ░ └╥┘┌─┐                        
##     q_1: ┤ H ├─░──╫─┤M├────────────────────────
##          ├───┤ ░  ║ └╥┘┌─┐                     
##     q_2: ┤ H ├─░──╫──╫─┤M├─────────────────────
##          ├───┤ ░  ║  ║ └╥┘┌─┐                  
##     q_3: ┤ H ├─░──╫──╫──╫─┤M├──────────────────
##          ├───┤ ░  ║  ║  ║ └╥┘┌─┐               
##     q_4: ┤ H ├─░──╫──╫──╫──╫─┤M├───────────────
##          ├───┤ ░  ║  ║  ║  ║ └╥┘┌─┐            
##     q_5: ┤ H ├─░──╫──╫──╫──╫──╫─┤M├────────────
##          ├───┤ ░  ║  ║  ║  ║  ║ └╥┘┌─┐         
##     q_6: ┤ H ├─░──╫──╫──╫──╫──╫──╫─┤M├─────────
##          ├───┤ ░  ║  ║  ║  ║  ║  ║ └╥┘┌─┐      
##     q_7: ┤ H ├─░──╫──╫──╫──╫──╫──╫──╫─┤M├──────
##          ├───┤ ░  ║  ║  ║  ║  ║  ║  ║ └╥┘┌─┐   
##     q_8: ┤ H ├─░──╫──╫──╫──╫──╫──╫──╫──╫─┤M├───
##          ├───┤ ░  ║  ║  ║  ║  ║  ║  ║  ║ └╥┘┌─┐
##     q_9: ┤ H ├─░──╫──╫──╫──╫──╫──╫──╫──╫──╫─┤M├
##          └───┘ ░  ║  ║  ║  ║  ║  ║  ║  ║  ║ └╥┘
## meas: 10/═════════╩══╩══╩══╩══╩══╩══╩══╩══╩══╩═
##                   0  1  2  3  4  5  6  7  8  9
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;On a real quantum computer, all qubits are measured simultaneously in a single shot — when &lt;code&gt;measure_all()&lt;/code&gt; is called, every qubit collapses to a 0 or 1 at the same time, producing one complete bitstring (like &lt;code&gt;0110101001&lt;/code&gt;) per shot. No qubit&amp;rsquo;s result influences another&amp;rsquo;s within the same measurement. In our example, since we only applied Hadamard gates with no entanglement, each qubit&amp;rsquo;s outcome is truly independent — which is why our results neatly follow a binomial distribution. If qubits were entangled, measuring one would constrain the others, even though the measurement still happens all at once.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;For educational purposes, |0&amp;gt; means the qubit is in the state of 0, and |1&amp;gt; means the qubit is in the state of 1. It is read as &amp;ldquo;ket 0&amp;rdquo; and &amp;ldquo;ket 1&amp;rdquo;. The | symbol is called a &amp;ldquo;bra-ket&amp;rdquo; notation, which is a standard way to represent quantum states. The &amp;ldquo;ket&amp;rdquo; part (|&amp;gt;) represents a column vector in a complex vector space, which is how quantum states are mathematically described. So |0&amp;gt; and |1&amp;gt; are the basic states of a qubit, where |0&amp;gt; corresponds to the state where the qubit is in the 0 state, and |1&amp;gt; corresponds to the state where the qubit is in the 1 state.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;But what good is it that we can only do simple 50% probability of 0 and 1? Can we change the probability of measuring 0 and 1? Yes, we can!&lt;/p&gt;




&lt;h3 id=&#34;degree&#34;&gt;Probability In Degrees
  &lt;a href=&#34;#degree&#34;&gt;&lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;&lt;/a&gt;
&lt;/h3&gt;
&lt;p&gt;In Hadamard gate, we&amp;rsquo;re essentially making the probability of 0 and 1 50% as we mentioned above. The magnitude/amplitude is formulated as a * |0&amp;gt; + b * |1&amp;gt; , where by a^2 + b^2 = 1. Also, P(|0&amp;gt;) = a^2, and P(|1&amp;gt;) = b^2. So if we want to change the probability of 0 and 1, we can use the Ry gate, which rotates the qubit around the Y-axis of the Bloch sphere. The angle of rotation (theta) determines the probabilities of measuring 0 or 1. Specifically, if we set theta such that sin²(theta/2) = p, then the probability of measuring |1&amp;gt; will be p, and the probability of measuring |0&amp;gt; will be 1-p. So by adjusting theta, we can control the probabilities of our measurement outcomes.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;p &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#099&#34;&gt;0.25&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;theta &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#099&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;*&lt;/span&gt; &lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;asin&lt;/span&gt;(&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;sqrt&lt;/span&gt;(p))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;qc &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;QuantumCircuit&lt;/span&gt;(qubit)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;for &lt;/span&gt;(i in &lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;c&lt;/span&gt;(&lt;span style=&#34;color:#099&#34;&gt;0&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;(qubit&lt;span style=&#34;color:#099&#34;&gt;-1&lt;/span&gt;))) {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     qc&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;ry&lt;/span&gt;(theta&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt;theta, qubit&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;as.integer&lt;/span&gt;(i))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;qc&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;measure_all&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;qc&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;draw&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;##          ┌─────────┐ ░ ┌─┐                           
##     q_0: ┤ Ry(π/3) ├─░─┤M├───────────────────────────
##          ├─────────┤ ░ └╥┘┌─┐                        
##     q_1: ┤ Ry(π/3) ├─░──╫─┤M├────────────────────────
##          ├─────────┤ ░  ║ └╥┘┌─┐                     
##     q_2: ┤ Ry(π/3) ├─░──╫──╫─┤M├─────────────────────
##          ├─────────┤ ░  ║  ║ └╥┘┌─┐                  
##     q_3: ┤ Ry(π/3) ├─░──╫──╫──╫─┤M├──────────────────
##          ├─────────┤ ░  ║  ║  ║ └╥┘┌─┐               
##     q_4: ┤ Ry(π/3) ├─░──╫──╫──╫──╫─┤M├───────────────
##          ├─────────┤ ░  ║  ║  ║  ║ └╥┘┌─┐            
##     q_5: ┤ Ry(π/3) ├─░──╫──╫──╫──╫──╫─┤M├────────────
##          ├─────────┤ ░  ║  ║  ║  ║  ║ └╥┘┌─┐         
##     q_6: ┤ Ry(π/3) ├─░──╫──╫──╫──╫──╫──╫─┤M├─────────
##          ├─────────┤ ░  ║  ║  ║  ║  ║  ║ └╥┘┌─┐      
##     q_7: ┤ Ry(π/3) ├─░──╫──╫──╫──╫──╫──╫──╫─┤M├──────
##          ├─────────┤ ░  ║  ║  ║  ║  ║  ║  ║ └╥┘┌─┐   
##     q_8: ┤ Ry(π/3) ├─░──╫──╫──╫──╫──╫──╫──╫──╫─┤M├───
##          ├─────────┤ ░  ║  ║  ║  ║  ║  ║  ║  ║ └╥┘┌─┐
##     q_9: ┤ Ry(π/3) ├─░──╫──╫──╫──╫──╫──╫──╫──╫──╫─┤M├
##          └─────────┘ ░  ║  ║  ║  ║  ║  ║  ║  ║  ║ └╥┘
## meas: 10/═══════════════╩══╩══╩══╩══╩══╩══╩══╩══╩══╩═
##                         0  1  2  3  4  5  6  7  8  9
&lt;/code&gt;&lt;/pre&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;simulator &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;AerSimulator&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;job &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt; simulator&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;run&lt;/span&gt;(qc, shots&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt;n)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;result &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt; job&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;result&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;counts &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt; result&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;get_counts&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;df &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;tibble&lt;/span&gt;(pattern&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;names&lt;/span&gt;(counts), freq&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;map_dbl&lt;/span&gt;(.x &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt; pattern, .f&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=~&lt;/span&gt;counts[[.x]]))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;df &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;|&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;mutate&lt;/span&gt;(total &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;map_dbl&lt;/span&gt;(.x&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt;df&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;pattern, .f&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=~&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;str_split&lt;/span&gt;(.x, &lt;span style=&#34;color:#d14&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;) &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;|&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;unlist&lt;/span&gt;() &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;|&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;as.numeric&lt;/span&gt;() &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;|&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;sum&lt;/span&gt;())) &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;|&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;group_by&lt;/span&gt;(total) &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;|&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;summarize&lt;/span&gt;(freq &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;sum&lt;/span&gt;(freq))
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;## # A tibble: 9 × 2
##   total  freq
##   &amp;lt;dbl&amp;gt; &amp;lt;dbl&amp;gt;
## 1     0    47
## 2     1   181
## 3     2   303
## 4     3   239
## 5     4   164
## 6     5    46
## 7     6    18
## 8     7     1
## 9     8     1
&lt;/code&gt;&lt;/pre&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;rbinom&lt;/span&gt;(n,qubit,p) &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;|&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;table&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;## 
##   0   1   2   3   4   5   6   7 
##  58 186 290 256 132  55  18   5
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Alright! We can change the probability, just like classic simulation!&lt;/p&gt;
&lt;p&gt;The math behind the probability needs a little calculus jujitsu, but the key idea is that the Ry gate allows us to manipulate the state of the qubit in such a way that we can achieve any desired probability distribution for the measurement outcomes. By setting theta appropriately, we can create a superposition state that gives us the exact probabilities we want when we measure the qubit.&lt;/p&gt;
&lt;p align=&#34;center&#34;&gt;
  &lt;img src=&#34;https://external-content.duckduckgo.com/iu/?u=http%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fthumb%2F6%2F6b%2FBloch_sphere.svg%2F220px-Bloch_sphere.svg.png&amp;f=1&amp;nofb=1&amp;ipt=ca35d6535169b0462f686f4b2bfa95d67d508809bb451a4db98b3c095fd0582b&#34; alt=&#34;image&#34; width=&#34;60%&#34; height=&#34;auto&#34;&gt;
&lt;/p&gt;
&lt;p&gt;Bloch sphere is a geometrical representation of the state of a qubit. It is a unit sphere where any point on the surface represents a possible state of the qubit. The north pole of the sphere corresponds to the state |0&amp;gt;, while the south pole corresponds to the state |1&amp;gt;. The points on the equator represent superposition states where the qubit has equal probabilities of being measured as 0 or 1. The angle theta that we use in the Ry gate corresponds to a rotation around the Y-axis of the Bloch sphere, which allows us to move from the north pole (|0&amp;gt;) towards the south pole (|1&amp;gt;) and create superposition states with different probabilities.&lt;/p&gt;
&lt;p&gt;The Ry rotation gate rotates around the Y-axis of the Bloch sphere. The probability of measuring |1&amp;gt; is:&lt;/p&gt;
&lt;p&gt;P(|1&amp;gt;) = sin²(theta/2)&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style=&#34;text-align:left&#34;&gt;Angle (degrees)&lt;/th&gt;
&lt;th style=&#34;text-align:right&#34;&gt;P(|1⟩)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;0°&lt;/td&gt;
&lt;td style=&#34;text-align:right&#34;&gt;0.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;30°&lt;/td&gt;
&lt;td style=&#34;text-align:right&#34;&gt;0.07&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;45°&lt;/td&gt;
&lt;td style=&#34;text-align:right&#34;&gt;0.15&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;60°&lt;/td&gt;
&lt;td style=&#34;text-align:right&#34;&gt;0.25&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;90°&lt;/td&gt;
&lt;td style=&#34;text-align:right&#34;&gt;0.50&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;180°&lt;/td&gt;
&lt;td style=&#34;text-align:right&#34;&gt;1.00&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Alright, let&amp;rsquo;s verify with our p = 0.25, did we get theta (angle) of 30 degrees?&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;theta
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;## [1] 1.047198
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Oppps, remember that theta is in radians, so we need to convert it to degrees:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;theta &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;*&lt;/span&gt; (&lt;span style=&#34;color:#099&#34;&gt;180&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;/&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;pi&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;## [1] 60
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;phew! 😮‍💨 it checked out.&lt;/p&gt;




&lt;h2 id=&#34;gates&#34;&gt;Gates
  &lt;a href=&#34;#gates&#34;&gt;&lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;&lt;/a&gt;
&lt;/h2&gt;




&lt;h3 id=&#34;cnot&#34;&gt;CNOT
  &lt;a href=&#34;#cnot&#34;&gt;&lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;&lt;/a&gt;
&lt;/h3&gt;
&lt;p&gt;The CNOT (Controlled NOT) gate is a two-qubit gate that flips the state of the target qubit (from |0&amp;gt; to |1&amp;gt; or from |1&amp;gt; to |0&amp;gt;) if and only if the control qubit is in the state |1&amp;gt;. If the control qubit is in the state |0&amp;gt;, the target qubit remains unchanged. This gate is essential for creating entanglement between qubits, which is a key feature of quantum computing that allows for complex correlations between qubits. Let&amp;rsquo;s check it out.&lt;/p&gt;




&lt;h4 id=&#34;without-hadamard-and-cnot&#34;&gt;Without Hadamard and CNOT
  &lt;a href=&#34;#without-hadamard-and-cnot&#34;&gt;&lt;/a&gt;
&lt;/h4&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;qc &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;QuantumCircuit&lt;/span&gt;(&lt;span style=&#34;color:#099&#34;&gt;2&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;qc&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;measure_all&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;simulator &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;AerSimulator&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;qc&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;draw&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;##          ░ ┌─┐   
##    q_0: ─░─┤M├───
##          ░ └╥┘┌─┐
##    q_1: ─░──╫─┤M├
##          ░  ║ └╥┘
## meas: 2/════╩══╩═
##             0  1
&lt;/code&gt;&lt;/pre&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;job &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;-&lt;/span&gt; simulator&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;run&lt;/span&gt;(qc, shots&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#099&#34;&gt;1000&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(counts &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;-&lt;/span&gt; job&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;result&lt;/span&gt;()&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;get_counts&lt;/span&gt;())
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;## {&amp;#39;00&amp;#39;: 1000}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;As we can see, we didn&amp;rsquo;t set anything, hence but qubits returned zero. And exacttly 1000 times.&lt;/p&gt;




&lt;h4 id=&#34;without-hadamard-but-with-cnot&#34;&gt;Without Hadamard but With CNOT
  &lt;a href=&#34;#without-hadamard-but-with-cnot&#34;&gt;&lt;/a&gt;
&lt;/h4&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;qc_cnot &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;QuantumCircuit&lt;/span&gt;(&lt;span style=&#34;color:#099&#34;&gt;2&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;invisible&lt;/span&gt;(qc_cnot&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;cx&lt;/span&gt;(&lt;span style=&#34;color:#099&#34;&gt;0L&lt;/span&gt;,&lt;span style=&#34;color:#099&#34;&gt;1L&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;qc_cnot&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;measure_all&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;qc_cnot&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;draw&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;##               ░ ┌─┐   
##    q_0: ──■───░─┤M├───
##         ┌─┴─┐ ░ └╥┘┌─┐
##    q_1: ┤ X ├─░──╫─┤M├
##         └───┘ ░  ║ └╥┘
## meas: 2/═════════╩══╩═
##                  0  1
&lt;/code&gt;&lt;/pre&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;simulator &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;AerSimulator&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;job &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;-&lt;/span&gt; simulator&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;run&lt;/span&gt;(qc_cnot, shots&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#099&#34;&gt;1000&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(counts &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;-&lt;/span&gt; job&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;result&lt;/span&gt;()&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;get_counts&lt;/span&gt;())
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;## {&amp;#39;00&amp;#39;: 1000}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Now, even when we inserted CNOT gate, but because the control qubit (qubit 0) is in the state |0&amp;gt;, the target qubit (qubit 1) remains unchanged, resulting in the same output as before, where both qubits are measured as |00&amp;gt; with a count of 1000. Simplistic speaking, if our first qubit is 0, the CNOT gate does nothing to the second qubit, so we still get |00&amp;gt; every time.&lt;/p&gt;




&lt;h4 id=&#34;with-x-gate-and-cnot&#34;&gt;With X Gate and CNOT
  &lt;a href=&#34;#with-x-gate-and-cnot&#34;&gt;&lt;/a&gt;
&lt;/h4&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;qc_x &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;QuantumCircuit&lt;/span&gt;(&lt;span style=&#34;color:#099&#34;&gt;2&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;invisible&lt;/span&gt;(qc_x&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;x&lt;/span&gt;(&lt;span style=&#34;color:#099&#34;&gt;0L&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;invisible&lt;/span&gt;(qc_x&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;cx&lt;/span&gt;(&lt;span style=&#34;color:#099&#34;&gt;0L&lt;/span&gt;, &lt;span style=&#34;color:#099&#34;&gt;1L&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;qc_x&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;measure_all&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;qc_x&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;draw&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;##         ┌───┐      ░ ┌─┐   
##    q_0: ┤ X ├──■───░─┤M├───
##         └───┘┌─┴─┐ ░ └╥┘┌─┐
##    q_1: ─────┤ X ├─░──╫─┤M├
##              └───┘ ░  ║ └╥┘
## meas: 2/══════════════╩══╩═
##                       0  1
&lt;/code&gt;&lt;/pre&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;simulator &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;AerSimulator&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;job &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;-&lt;/span&gt; simulator&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;run&lt;/span&gt;(qc_x, shots&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#099&#34;&gt;1000&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(counts &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;-&lt;/span&gt; job&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;result&lt;/span&gt;()&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;get_counts&lt;/span&gt;())
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;## {&amp;#39;11&amp;#39;: 1000}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Now, if qubit 0 is now |1&amp;gt;, X gate basically turns the current state to the opposite, so qubit 0 is now |1&amp;gt;. When we apply the CNOT gate, it checks the state of qubit 0 (the control qubit). Since qubit 0 is now |1&amp;gt;, the CNOT gate flips the state of qubit 1 (the target qubit) from |0&amp;gt; to |1&amp;gt;. As a result, we get the output state |11&amp;gt; with a count of 1000.&lt;/p&gt;
&lt;p&gt;What if our qubit 0 is |0&amp;gt; but our qubit 1 is |1&amp;gt;. apply CNOT with control on qubit 0 and target on qubit 1? What would happen? |01&amp;gt; = 1000 ?&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;qc_x &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;QuantumCircuit&lt;/span&gt;(&lt;span style=&#34;color:#099&#34;&gt;2&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;invisible&lt;/span&gt;(qc_x&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;x&lt;/span&gt;(&lt;span style=&#34;color:#099&#34;&gt;1L&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;invisible&lt;/span&gt;(qc_x&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;cx&lt;/span&gt;(&lt;span style=&#34;color:#099&#34;&gt;0L&lt;/span&gt;, &lt;span style=&#34;color:#099&#34;&gt;1L&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;qc_x&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;measure_all&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;qc_x&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;draw&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;##                    ░ ┌─┐   
##    q_0: ───────■───░─┤M├───
##         ┌───┐┌─┴─┐ ░ └╥┘┌─┐
##    q_1: ┤ X ├┤ X ├─░──╫─┤M├
##         └───┘└───┘ ░  ║ └╥┘
## meas: 2/══════════════╩══╩═
##                       0  1
&lt;/code&gt;&lt;/pre&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;simulator &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;AerSimulator&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;job &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;-&lt;/span&gt; simulator&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;run&lt;/span&gt;(qc_x, shots&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#099&#34;&gt;1000&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(counts &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;-&lt;/span&gt; job&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;result&lt;/span&gt;()&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;get_counts&lt;/span&gt;())
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;## {&amp;#39;10&amp;#39;: 1000}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;WAIT A MINUTE !?! Why is it not |01&amp;gt; ???!?! That is because the output is read right-to-left !!! Now what if we use CNOT with qubit 1 as control, and qubit 0 as target? What do you think will happen? It should be |11&amp;gt; = 1000, right?&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;qc_x &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;QuantumCircuit&lt;/span&gt;(&lt;span style=&#34;color:#099&#34;&gt;2&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;invisible&lt;/span&gt;(qc_x&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;x&lt;/span&gt;(&lt;span style=&#34;color:#099&#34;&gt;1L&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;invisible&lt;/span&gt;(qc_x&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;cx&lt;/span&gt;(&lt;span style=&#34;color:#099&#34;&gt;1L&lt;/span&gt;, &lt;span style=&#34;color:#099&#34;&gt;0L&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;qc_x&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;measure_all&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;qc_x&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;draw&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;##              ┌───┐ ░ ┌─┐   
##    q_0: ─────┤ X ├─░─┤M├───
##         ┌───┐└─┬─┘ ░ └╥┘┌─┐
##    q_1: ┤ X ├──■───░──╫─┤M├
##         └───┘      ░  ║ └╥┘
## meas: 2/══════════════╩══╩═
##                       0  1
&lt;/code&gt;&lt;/pre&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;simulator &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;AerSimulator&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;job &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;-&lt;/span&gt; simulator&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;run&lt;/span&gt;(qc_x, shots&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#099&#34;&gt;1000&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(counts &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;-&lt;/span&gt; job&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;result&lt;/span&gt;()&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;get_counts&lt;/span&gt;())
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;## {&amp;#39;11&amp;#39;: 1000}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Cool beans! Now, if it&amp;rsquo;s truly read right-to-left, if we place qubit 0 as |1&amp;gt; and qubit 1 as |0&amp;gt; with CNOT control on qubit 1 and target on qubit 0, we should see |01&amp;gt; = 1000 !!! Let&amp;rsquo;s examine.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;qc_x &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;QuantumCircuit&lt;/span&gt;(&lt;span style=&#34;color:#099&#34;&gt;2&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;invisible&lt;/span&gt;(qc_x&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;x&lt;/span&gt;(&lt;span style=&#34;color:#099&#34;&gt;0L&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;invisible&lt;/span&gt;(qc_x&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;cx&lt;/span&gt;(&lt;span style=&#34;color:#099&#34;&gt;1L&lt;/span&gt;, &lt;span style=&#34;color:#099&#34;&gt;0L&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;qc_x&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;measure_all&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;qc_x&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;draw&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;##         ┌───┐┌───┐ ░ ┌─┐   
##    q_0: ┤ X ├┤ X ├─░─┤M├───
##         └───┘└─┬─┘ ░ └╥┘┌─┐
##    q_1: ───────■───░──╫─┤M├
##                    ░  ║ └╥┘
## meas: 2/══════════════╩══╩═
##                       0  1
&lt;/code&gt;&lt;/pre&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;simulator &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;AerSimulator&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;job &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;-&lt;/span&gt; simulator&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;run&lt;/span&gt;(qc_x, shots&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#099&#34;&gt;1000&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(counts &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;-&lt;/span&gt; job&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;result&lt;/span&gt;()&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;get_counts&lt;/span&gt;())
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;## {&amp;#39;01&amp;#39;: 1000}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;🙌 !!!&lt;/p&gt;
&lt;p&gt;Now, let&amp;rsquo;s do another experiment. If we set both qubit 0 and 1 as |1&amp;gt; and assigned a CNOT with control via qubit 1 and target via qubit 0. We should see that it will turn qubit 0&amp;rsquo;s |1&amp;gt; to |0&amp;gt;. And again, if we were to starts from right to left,  we should see |10&amp;gt;, right?&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;qc_x &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;QuantumCircuit&lt;/span&gt;(&lt;span style=&#34;color:#099&#34;&gt;2&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;invisible&lt;/span&gt;(qc_x&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;x&lt;/span&gt;(&lt;span style=&#34;color:#099&#34;&gt;0L&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;invisible&lt;/span&gt;(qc_x&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;x&lt;/span&gt;(&lt;span style=&#34;color:#099&#34;&gt;1L&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;invisible&lt;/span&gt;(qc_x&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;cx&lt;/span&gt;(&lt;span style=&#34;color:#099&#34;&gt;1L&lt;/span&gt;, &lt;span style=&#34;color:#099&#34;&gt;0L&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;qc_x&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;measure_all&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;qc_x&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;draw&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;##         ┌───┐┌───┐ ░ ┌─┐   
##    q_0: ┤ X ├┤ X ├─░─┤M├───
##         ├───┤└─┬─┘ ░ └╥┘┌─┐
##    q_1: ┤ X ├──■───░──╫─┤M├
##         └───┘      ░  ║ └╥┘
## meas: 2/══════════════╩══╩═
##                       0  1
&lt;/code&gt;&lt;/pre&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;simulator &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;AerSimulator&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;job &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;-&lt;/span&gt; simulator&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;run&lt;/span&gt;(qc_x, shots&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#099&#34;&gt;1000&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(counts &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;-&lt;/span&gt; job&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;result&lt;/span&gt;()&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;get_counts&lt;/span&gt;())
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;## {&amp;#39;10&amp;#39;: 1000}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;🙌🙌🙌 !!!&lt;/p&gt;




&lt;h4 id=&#34;with-hadamard-and-cnot-bell-state&#34;&gt;With Hadamard and CNOT (Bell State)
  &lt;a href=&#34;#with-hadamard-and-cnot-bell-state&#34;&gt;&lt;/a&gt;
&lt;/h4&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;qc_bell &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;QuantumCircuit&lt;/span&gt;(&lt;span style=&#34;color:#099&#34;&gt;2&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;qc_bell&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;h&lt;/span&gt;(&lt;span style=&#34;color:#099&#34;&gt;0L&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;## &amp;lt;qiskit.circuit.instructionset.InstructionSet object at 0x133a2e380&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;qc_bell&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;cx&lt;/span&gt;(&lt;span style=&#34;color:#099&#34;&gt;0L&lt;/span&gt;, &lt;span style=&#34;color:#099&#34;&gt;1L&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;## &amp;lt;qiskit.circuit.instructionset.InstructionSet object at 0x133a2e440&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;qc_bell&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;draw&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;##      ┌───┐     
## q_0: ┤ H ├──■──
##      └───┘┌─┴─┐
## q_1: ─────┤ X ├
##           └───┘
&lt;/code&gt;&lt;/pre&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;qc_bell&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;measure_all&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;simulator &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;AerSimulator&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;job &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;-&lt;/span&gt; simulator&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;run&lt;/span&gt;(qc_bell, shots&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#099&#34;&gt;1000&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(counts &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;-&lt;/span&gt; job&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;result&lt;/span&gt;()&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#900;font-weight:bold&#34;&gt;get_counts&lt;/span&gt;())
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;## {&amp;#39;11&amp;#39;: 489, &amp;#39;00&amp;#39;: 511}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This is where the magic happens. The Hadamard gate puts the first qubit into a superposition state, which means it has an equal probability of being measured as |0&amp;gt; or |1&amp;gt;. When we apply the CNOT gate, it creates an entangled state between the two qubits. As a result, when we measure the qubits, we get either |00&amp;gt; or |11&amp;gt; with equal probability (approximately 500 counts each), and we never get |01&amp;gt; or |10&amp;gt;. This is a demonstration of quantum entanglement, where the state of one qubit is directly correlated with the state of another qubit, even though they are measured independently.&lt;/p&gt;




&lt;h2 id=&#34;cheatsheet&#34;&gt;Cheat Sheet
  &lt;a href=&#34;#cheatsheet&#34;&gt;&lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;&lt;/a&gt;
&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Gate&lt;/th&gt;
&lt;th&gt;Name&lt;/th&gt;
&lt;th&gt;Matrix&lt;/th&gt;
&lt;th&gt;Effect on l0⟩&lt;/th&gt;
&lt;th&gt;Effect on l1)&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;td&gt;NOT/Pauli-X&lt;/td&gt;
&lt;td&gt;[[0,1],[1,0]]&lt;/td&gt;
&lt;td&gt;l1⟩&lt;/td&gt;
&lt;td&gt;l0⟩&lt;/td&gt;
&lt;td&gt;Bit flip&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;H&lt;/td&gt;
&lt;td&gt;Hadamard&lt;/td&gt;
&lt;td&gt;[[1,1],[1,-1]]/√2&lt;/td&gt;
&lt;td&gt;(l0⟩+l1⟩)/√2&lt;/td&gt;
&lt;td&gt;(l0⟩-l1⟩)/√2&lt;/td&gt;
&lt;td&gt;Superposition&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Two-Qubit Gates&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Gate&lt;/th&gt;
&lt;th&gt;Name&lt;/th&gt;
&lt;th&gt;Effect&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;CNOT&lt;/td&gt;
&lt;td&gt;Controlled-NOT&lt;/td&gt;
&lt;td&gt;If control=1, flip target&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Common Circuits&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Circuit&lt;/th&gt;
&lt;th&gt;Gates&lt;/th&gt;
&lt;th&gt;Result&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Bell State&lt;/td&gt;
&lt;td&gt;H, CNOT&lt;/td&gt;
&lt;td&gt;(l00⟩+l11⟩)/√2&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;




&lt;h2 id=&#34;progress&#34;&gt;Learning In Progress
  &lt;a href=&#34;#progress&#34;&gt;&lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;Obviously my understanding of quantum computing is at best very surface. However, able to visualize the circuits, experiment with turning qubits and adding gates and test my understanding is truly remarkable for my learning! I don&amp;rsquo;t think I&amp;rsquo;d be able to get that kind of feedback just by reading. I think the insight I got from doing these simple exercises is that my learning style requires me to be hands on and experiment with the response/answers and ask lots and lots of simple questions. 🙌 Or maybe sometimes I&amp;rsquo;ll call it the illusion of understanding lol. Till next time! We&amp;rsquo;ll explore common more a bit more complex circuits like oracle, grover, and then slowly, and hopefully venture into VQE which is where it will be helpful with post-molecular dynamic energy sampling assessment.&lt;/p&gt;




&lt;h2 id=&#34;opportunities&#34;&gt;Opportunities For Improvement
  &lt;a href=&#34;#opportunities&#34;&gt;&lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;&lt;/a&gt;
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;learn about other single gates like identity, pauli-y, pauli-z, phase, etc. Other two-qubit gates such as cz, swap. Other common circuits like bell state Y+, GHZ, oracle, and add to cheat sheet as I learn more&lt;/li&gt;
&lt;li&gt;Should try the real thing with IBM instances&lt;/li&gt;
&lt;li&gt;learn oracle&lt;/li&gt;
&lt;li&gt;learn Grover&amp;rsquo;s algorithm and Shor&amp;rsquo;s algorithm&lt;/li&gt;
&lt;li&gt;learn VQE and QAOA&lt;/li&gt;
&lt;li&gt;learn quantum machine learning&lt;/li&gt;
&lt;/ul&gt;




&lt;h2 id=&#34;lessons&#34;&gt;Lessons learnt
  &lt;a href=&#34;#lessons&#34;&gt;&lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;
      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;
    &lt;/svg&gt;&lt;/a&gt;
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;learnt some simple qiskit functions&lt;/li&gt;
&lt;li&gt;learnt how to simulate classic probabilities in quantum computing lingo&lt;/li&gt;
&lt;li&gt;learnt Dirac notation&lt;/li&gt;
&lt;li&gt;explored the quantum circuits via qiskit&lt;/li&gt;
&lt;li&gt;had to use &lt;code&gt;invisible&lt;/code&gt; to hide python object printing on rmarkdown&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you like this article:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;please feel free to send me a 
&lt;a href=&#34;https://www.kenkoonwong.com/blog/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;comment or visit my other blogs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;please feel free to follow me on 
&lt;a href=&#34;https://bsky.app/profile/kenkoonwong.bsky.social&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;BlueSky&lt;/a&gt;, 
&lt;a href=&#34;https://twitter.com/kenkoonwong/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;twitter&lt;/a&gt;, 
&lt;a href=&#34;https://github.com/kenkoonwong/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;GitHub&lt;/a&gt; or 
&lt;a href=&#34;https://rstats.me/@kenkoonwong&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Mastodon&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;if you would like collaborate please feel free to 
&lt;a href=&#34;https://www.kenkoonwong.com/contact/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;contact me&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
  </channel>
</rss>