<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Q# on Strathweb. A free flowing tech monologue.</title>
    <link>https://www.strathweb.com/categories/q-sharp/</link>
    <description>Recent content in Q# on Strathweb. A free flowing tech monologue.</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Fri, 19 Dec 2025 07:00:00 +0000</lastBuildDate><atom:link href="https://www.strathweb.com/categories/q-sharp/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Certified Randomness Amplification with Q#</title>
      <link>https://www.strathweb.com/2025/12/certified-randomness-amplification-with-qsharp/</link>
      <pubDate>Fri, 19 Dec 2025 07:00:00 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2025/12/certified-randomness-amplification-with-qsharp/</guid>
      <description>&lt;p&gt;In the world of quantum computing, generating true randomness is one of the most fundamental applications. But how do we know that a sequence of numbers is truly random and generated by a quantum process, rather than by a classical simulation or a pre-determined list?&lt;/p&gt;
&lt;p&gt;In this post, we will explore a protocol to generate high-quality random numbers using a quantum computer, based on the recent paper &lt;a href=&#34;https://arxiv.org/abs/2511.03686&#34;&gt;Certified randomness amplification by dynamically probing remote random quantum states&lt;/a&gt; (Liu et al, arXiv:2511.03686, 2025). We will implement the core of this protocol using Q# for the quantum kernel and Python for the orchestration and verification, and then run it on a Q# simulator.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Generating Quantikz LaTeX Circuits from Q# Code</title>
      <link>https://www.strathweb.com/2025/12/generating-quantikz-latex-circuits-from-qsharp-code/</link>
      <pubDate>Wed, 17 Dec 2025 07:06:14 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2025/12/generating-quantikz-latex-circuits-from-qsharp-code/</guid>
      <description>&lt;p&gt;If you visited this blog before, chances are you are familiar with &lt;a href=&#34;https://www.strathweb.com/2024/06/announcing-qsharp-bridge-a-library-bringing-the-qsharp-simulator-and-tooling-to-csharp-swfit-and-kotlin&#34;&gt;Q# Bridge&lt;/a&gt;, a library that I have been working on for quite a while, that allows you to run Q# quantum simulations and access a number of Q# compiler/QDK features from multiple popular high-level languages such as C#, Swift, Python and Kotlin.&lt;/p&gt;
&lt;p&gt;Today, I would like to shortly talk about a brand new feature in the library - the ability to generate &lt;a href=&#34;https://ctan.org/pkg/quantikz&#34;&gt;Quantikz&lt;/a&gt; LaTeX circuits from Q# source code.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>A Cat Jumped on a Keyboard and Fixed Q# Array Syntax</title>
      <link>https://www.strathweb.com/2025/06/a-cat-jumped-on-a-keyboard-and-fixed-qsharp-array-syntax/</link>
      <pubDate>Fri, 06 Jun 2025 07:06:14 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2025/06/a-cat-jumped-on-a-keyboard-and-fixed-qsharp-array-syntax/</guid>
      <description>&lt;p&gt;There is an old joke that one day a cat jumped on a keyboard and that&amp;rsquo;s how &lt;a href=&#34;https://en.wikipedia.org/wiki/Perl&#34;&gt;Perl&lt;/a&gt; was invented. If you ever worked with array updates in Q#, you have certainly felt the pain of the syntax. At least for me, it was always a source of confusion and frustration. It was one of those things, like regular expressions, that I needed to look up every time - and then I would immediately forget it again. And I consider myself to be quite &lt;a href=&#34;https://link.springer.com/book/10.1007/978-3-030-99379-5&#34;&gt;proficient&lt;/a&gt; in Q#!&lt;/p&gt;
&lt;p&gt;Last week &lt;a href=&#34;https://github.com/microsoft/qsharp/releases/tag/v1.17.0&#34;&gt;Q# 1.17&lt;/a&gt; was released, and one of the great changes included was a new syntax for array updates.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Running Q# code on Quokka</title>
      <link>https://www.strathweb.com/2025/03/running-qsharp-code-on-quokka/</link>
      <pubDate>Thu, 20 Mar 2025 07:06:14 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2025/03/running-qsharp-code-on-quokka/</guid>
      <description>&lt;p&gt;Quokka (or &amp;ldquo;Quokka Puck&amp;rdquo;) is a brand new quantum educational device from &lt;a href=&#34;https://www.quokkacomputing.com&#34;&gt;Chris Ferrie and Simon Devitt&lt;/a&gt;, originally funded by a &lt;a href=&#34;https://www.kickstarter.com/projects/chrisferrie/quokka-your-personal-quantum-computer/description&#34;&gt;Kickstarter campaign&lt;/a&gt;. It is a beautifully designed, standalone, plug and play, 30-qubit quantum computer emulator. Sure you can simulate quantum programs on your laptop, but Quokka is a dedicated device that is designed to make quantum computing education accessible and fun. It is a great way to learn quantum programming and quantum algorithms, experience the interaction flow typical for real quantum hardware, and it is a perfect gift for anyone interested in quantum computing.&lt;/p&gt;
&lt;p&gt;In today&amp;rsquo;s post, we will have a look at how you can run Q# on a Quokka Puck device.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Decorating a Quantum Christmas Tree with Q# and Qiskit</title>
      <link>https://www.strathweb.com/2024/12/decorating-a-quantum-christmas-tree-with-qsharp-and-qiskit/</link>
      <pubDate>Mon, 16 Dec 2024 07:06:14 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2024/12/decorating-a-quantum-christmas-tree-with-qsharp-and-qiskit/</guid>
      <description>&lt;p&gt;For a few years in a row now, around this time of the year, I have been writing a festive Q#  quantum computing post. This year I would like to keep the tradition going and explore another fun topic .&lt;/p&gt;
&lt;p&gt;Ever wondered what would happen if we let quantum mechanics decorate a 🎄 Christmas tree ? Let&amp;rsquo;s explore a quantum program - in both my favorite quantum programming language, Q#, as well as in Qiskit - that makes quantum effects visible through festive decorations.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Generating OpenQASM from Q# code</title>
      <link>https://www.strathweb.com/2024/12/generating-qasm-from-qsharp-code/</link>
      <pubDate>Thu, 12 Dec 2024 07:06:14 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2024/12/generating-qasm-from-qsharp-code/</guid>
      <description>&lt;p&gt;In the summer of 2024, I &lt;a href=&#34;https://www.strathweb.com/2024/06/announcing-qsharp-bridge-a-library-bringing-the-qsharp-simulator-and-tooling-to-csharp-swfit-and-kotlin&#34;&gt;announced the Q# Bridge library&lt;/a&gt;, which allows you to run Q# simulations from many popular high-level languages - C#, Swift, Python and Kotlin. Today, I would like to write about a brand new feature in the library, an ability to generate OpenQASM 2.0 code from Q# source.&lt;/p&gt;
&lt;p&gt;This is a feature that Q# toolchain does not natively supports, and it adds to the value proposition of Q# Bridge - acting as a literal bridge between Q# and other ecosystems (traditional languages or, in this case, quantum).&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Announcing Q# Bridge - a library bringing the Q# simulator and tools to C#, Swfit and Kotlin</title>
      <link>https://www.strathweb.com/2024/06/announcing-qsharp-bridge-a-library-bringing-the-qsharp-simulator-and-tooling-to-csharp-swfit-and-kotlin/</link>
      <pubDate>Tue, 25 Jun 2024 07:06:14 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2024/06/announcing-qsharp-bridge-a-library-bringing-the-qsharp-simulator-and-tooling-to-csharp-swfit-and-kotlin/</guid>
      <description>&lt;p&gt;Over the past year, Q# and the QDK, have undergone &lt;a href=&#34;https://devblogs.microsoft.com/qsharp/announcing-v1-0-of-the-azure-quantum-development-kit/&#34;&gt;a massive transformation&lt;/a&gt;, with the entire toolchain moving to Rust - which resulted in a significant performance improvement, better portability of the toolchain and the ability to run Q# on a wide range of platforms. This was especially striking compared to the 0.x versions of the QDK, which was coupled to the .NET SDK.&lt;/p&gt;
&lt;p&gt;Today I would like to announce a new Q# ecosystem project called &lt;a href=&#34;https://github.com/qsharp-community/qsharp-bridge&#34;&gt;Q# Bridge&lt;/a&gt;, built under the Q# Community organization, which acts as a wrapper around the Q# simulator and tools, allowing you to easily use them from C#, Swift and Kotlin. The library is designed to be a lightweight wrapper around the Q# tooling, providing a simple API to interact with the Q# simulator and tools (such as resource estimation, QIR generation or circuit descriptions), without the need to write any Rust code or deal with marshaling or FFI directly.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Upgrading Q# book samples to QDK 1.0</title>
      <link>https://www.strathweb.com/2024/01/upgrading-qsharp-book-samples-to-qdk-10/</link>
      <pubDate>Fri, 26 Jan 2024 07:06:14 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2024/01/upgrading-qsharp-book-samples-to-qdk-10/</guid>
      <description>&lt;p&gt;As you may know from the &lt;a href=&#34;https://www.strathweb.com/2022/05/announcing-my-new-q-and-quantum-computing-book/&#34;&gt;announcement&lt;/a&gt; on this blog (or from the image in the sidebar&amp;hellip;), I wrote a quantum computing book titled &amp;ldquo;Introduction to Quantum Computing with Q# and QDK&amp;rdquo; which was published by &lt;a href=&#34;https://link.springer.com/book/10.1007/978-3-030-99379-5&#34;&gt;Springer&lt;/a&gt; in May 2022. The &lt;a href=&#34;https://github.com/filipw/intro-to-qc-with-qsharp-book&#34;&gt;source code&lt;/a&gt; samples used in the book were written against version &lt;a href=&#34;https://learn.microsoft.com/en-us/azure/quantum/release-notes-2021#qdk-version-0212112180703&#34;&gt;0.21.2112180703&lt;/a&gt; of the QDK and the Q# language, which had been released on 14th December 2021. The code also works fine with all the newer versions of QDK lower than 1.0 - the last pre-1.0 release being &lt;a href=&#34;https://learn.microsoft.com/en-us/azure/quantum/release-notes-2023#qdk-version-028302812&#34;&gt;0.28.302812&lt;/a&gt;, from 15 September 2023.&lt;/p&gt;
&lt;p&gt;Earlier this month, Microsoft &lt;a href=&#34;https://devblogs.microsoft.com/qsharp/announcing-v1-0-of-the-azure-quantum-development-kit/&#34;&gt;announced&lt;/a&gt; the release of QDK 1.0, which brings in a big overhaul of the entire QDK ecosystem, as well as the Q# language itself. As a consequence, it also contains numerous breaking changes and feature gaps in the libraries and in the language itself.&lt;/p&gt;
&lt;p&gt;As part of my commitment to keeping the samples used in the book up-to-date, I would like to share the updated samples.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Exploring quantum encryption with certified deletion with Q#</title>
      <link>https://www.strathweb.com/2023/12/exploring-quantum-encryption-and-certified-deletion-with-qsharp/</link>
      <pubDate>Fri, 08 Dec 2023 07:19:56 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2023/12/exploring-quantum-encryption-and-certified-deletion-with-qsharp/</guid>
      <description>&lt;p&gt;For the last few years (&lt;a href=&#34;https://www.strathweb.com/2022/12/q-holiday-calendar-2022-peeking-into-santas-gifts-with-q/&#34;&gt;2022&lt;/a&gt;, &lt;a href=&#34;https://www.strathweb.com/2021/12/q-advent-calendar-2020-partial-application-in-q/&#34;&gt;2021&lt;/a&gt; and &lt;a href=&#34;https://www.strathweb.com/2020/12/q-advent-calendar-2020-creating-q-compiler-rewrite-steps/&#34;&gt;2020&lt;/a&gt;), around this time of the year, I published a special festive Q# blog post as part of the Q# Holiday Calendar, organized by &lt;a href=&#34;https://devblogs.microsoft.com/qsharp/author/mamykhai/&#34;&gt;Mariia Mykhailova&lt;/a&gt; from Microsoft Quantum . While this year there is unfortunately no &amp;ldquo;official&amp;rdquo; Q# calendar initiative, I would like to keep the 🎄 holiday spirit alive and prepared a special Q# blog post for this occasion.&lt;/p&gt;
&lt;p&gt;Today, we are going to have a look at quantum certified deletion, with examples in Q#.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Shuffling an array in Q#</title>
      <link>https://www.strathweb.com/2023/12/shuffling-an-array-in-qsharp/</link>
      <pubDate>Wed, 06 Dec 2023 08:19:56 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2023/12/shuffling-an-array-in-qsharp/</guid>
      <description>&lt;p&gt;The Q# standard library is equipped with an &lt;a href=&#34;https://learn.microsoft.com/en-us/qsharp/api/qsharp/microsoft.quantum.arrays&#34;&gt;extensive collection of array functions&lt;/a&gt;, meeting a wide array of algorithmic requirements. It further includes a variety of functions, types, and operations beneficial for generating random values and handling different probability distributions.&lt;/p&gt;
&lt;p&gt;However, a somewhat notable omission is the lack of a built-in feature for shuffling or randomizing an existing array. In this blog post, we will build a straightforward helper operation to bridge this functional gap.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>QIR Runner for ARM64 Macs is now available</title>
      <link>https://www.strathweb.com/2023/05/qir-runner-for-arm64-macs-is-now-available/</link>
      <pubDate>Fri, 12 May 2023 08:00:14 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2023/05/qir-runner-for-arm64-macs-is-now-available/</guid>
      <description>&lt;p&gt;In January &lt;a href=&#34;https://www.strathweb.com/2023/01/simulating-qsharp-programs-with-qir-runner/&#34;&gt;I blogged&lt;/a&gt; about using the &lt;a href=&#34;https://github.com/qir-alliance/qir-runner&#34;&gt;QIR Runner&lt;/a&gt; as an alternative (or even preferred!) way for simulating your Q# programs locally. The main reason behind that were performance gains (QIR runner is written in Rust), &lt;a href=&#34;https://www.qir-alliance.org&#34;&gt;standardization&lt;/a&gt; (same intermediate format used as input into the simulator and the quantum hardware) and the complete &lt;a href=&#34;https://www.strathweb.com/2022/07/running-q-and-qdk-on-arm64-mac/&#34;&gt;incompatibility&lt;/a&gt; of the default QDK full state simulator with ARM64 processor architecture (even under x64 emulation).&lt;/p&gt;
&lt;p&gt;One major limitation of the QIR Runner was that it was also x64 compatible only, but at least still worked well on ARM processors under emulation. This limitation has now been addressed.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Simulating Q# programs with QIR runner</title>
      <link>https://www.strathweb.com/2023/01/simulating-qsharp-programs-with-qir-runner/</link>
      <pubDate>Mon, 23 Jan 2023 15:06:14 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2023/01/simulating-qsharp-programs-with-qir-runner/</guid>
      <description>&lt;p&gt;I recently &lt;a href=&#34;https://www.strathweb.com/2022/07/running-q-and-qdk-on-arm64-mac/&#34;&gt;blogged&lt;/a&gt; about the rather unfortunate series of steps that are needed to make the Q# simulator work on arm64 Mac computers, since that platform is sadly not supported out of the box.&lt;/p&gt;
&lt;p&gt;In today&amp;rsquo;s post we are going to kill two birds with one stone - we will make local simulation of Q# programs on arm64 MacOS much easier and we will additionally see how we can simulate Q# programs that happen to be compiled to &lt;a href=&#34;https://www.qir-alliance.org&#34;&gt;QIR&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Q# Holiday Calendar 2022 – Peeking into Santa’s gifts with Q#</title>
      <link>https://www.strathweb.com/2022/12/q-holiday-calendar-2022-peeking-into-santas-gifts-with-q/</link>
      <pubDate>Thu, 08 Dec 2022 08:08:45 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2022/12/q-holiday-calendar-2022-peeking-into-santas-gifts-with-q/</guid>
      <description>&lt;p&gt;🎄 This post is part of the &lt;a href=&#34;https://devblogs.microsoft.com/qsharp/q-holiday-calendar-2022/&#34;&gt;Q# Holiday Calendar 2022&lt;/a&gt;. 🎅🏻&lt;/p&gt;
&lt;p&gt;In 1993, Avshalom Elitzur and Lev Vaidman from Tel-Aviv University wrote a &lt;a href=&#34;https://arxiv.org/abs/hep-th/9305002&#34;&gt;paper&lt;/a&gt; in which they proposed a fascinating thought experiment. They described bombs equipped with a very sensitive triggering mechanism - through interaction with a single photon only - and then proceeded to show that using quantum effects, in a procedure they called &amp;ldquo;interaction-free measurement&amp;rdquo;, such bombs can be safely (without triggering the explosion) tested to determine whether a given bomb is armed or not.&lt;/p&gt;
&lt;p&gt;We will explore this concept in this post using Q#, but since we do not want to have anything to do with the bombs, we will replace the original thought experiment with something much better - Santa&amp;rsquo;s gifts! 🎁&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Running Q# and QDK on arm64 Mac</title>
      <link>https://www.strathweb.com/2022/07/running-q-and-qdk-on-arm64-mac/</link>
      <pubDate>Fri, 29 Jul 2022 14:55:48 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2022/07/running-q-and-qdk-on-arm64-mac/</guid>
      <description>&lt;p&gt;Due to a combination of issues, the current Microsoft.Quantum.Sdk (at the time of writing, version &lt;em&gt;0.25.222597&lt;/em&gt;) does not support arm64 Macs, which of course are the flagship Apple silicon processors from the M1 and M2 family.&lt;/p&gt;
&lt;p&gt;Hopefully these issues get resolved soon, but until then, this post will chronicle the necessary workarounds to be able to write Q#/QDK code on arm64 Macs.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Announcing TextMate grammar community project for Q#</title>
      <link>https://www.strathweb.com/2022/06/announcing-textmate-grammar-community-project-for-q/</link>
      <pubDate>Wed, 29 Jun 2022 14:33:56 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2022/06/announcing-textmate-grammar-community-project-for-q/</guid>
      <description>I have recently started a new Q# community repo, aimed at bringing a holistic and structured approach for building up Q# TextMate grammar.
TextMate grammars are based on regular expressions from the Oniguruma regex engine and are a de-facto standard for syntax highlighting and tokenization for programming languages. Popular editors such as Visual Studio Code or Sublime Text base their syntax highlighting on such grammars.
At the moment, the Q# LSP extension ships with a very basic TextMate grammar only, focused on a handful of keywords and specially designated symbol names only.</description>
    </item>
    
    <item>
      <title>Announcing my new Q# and quantum computing book</title>
      <link>https://www.strathweb.com/2022/05/announcing-my-new-q-and-quantum-computing-book/</link>
      <pubDate>Mon, 09 May 2022 13:43:08 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2022/05/announcing-my-new-q-and-quantum-computing-book/</guid>
      <description>I am extremely happy to announce that on 7 May 2022, my new book, &amp;ldquo;Introduction to Quantum Computing with Q# and QDK&amp;rdquo; has been published by Springer, as part of the excellent Quantum Science and Technology series. From now on, you can also see the book in the sidebar of this website.
I am extremely proud of this moment - it is the result of almost 2 years of hard work and countless long nights.</description>
    </item>
    
    <item>
      <title>Q# Advent Calendar 2021 – Partial application in Q#</title>
      <link>https://www.strathweb.com/2021/12/q-advent-calendar-2020-partial-application-in-q/</link>
      <pubDate>Tue, 28 Dec 2021 11:04:29 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2021/12/q-advent-calendar-2020-partial-application-in-q/</guid>
      <description>Recently, as part of Q# Advent Calendar 2021, I published a special quest post on Q# Community blog. You can find my post on &amp;ldquo;Partial callable application in Q#&amp;rdquo; on the here. Enjoy!</description>
    </item>
    
    <item>
      <title>Difference between R1 and Rz gate in quantum computing</title>
      <link>https://www.strathweb.com/2021/12/difference-between-r1-and-rz-gate-in-quantum-computing/</link>
      <pubDate>Tue, 07 Dec 2021 17:12:01 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2021/12/difference-between-r1-and-rz-gate-in-quantum-computing/</guid>
      <description>&lt;p&gt;In this post we will have a look at the subtle difference between two single qubit rotation gates - &lt;em&gt;Rz&lt;/em&gt; and &lt;em&gt;R1&lt;/em&gt;. Q# distinguishes between them, and the are de facto the same, yet differ in a very subtle way.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Introduction to quantum computing with Q# – Part 19, Quantum Phase Estimation</title>
      <link>https://www.strathweb.com/2021/04/introduction-to-quantum-computing-with-q-part-19-quantum-phase-estimation/</link>
      <pubDate>Wed, 28 Apr 2021 14:20:56 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2021/04/introduction-to-quantum-computing-with-q-part-19-quantum-phase-estimation/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://www.strathweb.com/2021/04/introduction-to-quantum-computing-with-q-part-18-quantum-fourier-transform/&#34;&gt;Last time&lt;/a&gt; we discussed the Quantum Fourier Transform - one of the important building blocks for more complex quantum algorithms. In this post, we will build upon that knowledge and take advantage of the QFT functionality, to explore another important subroutine that is used in many quantum programs, namely quantum phase estimation.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Introduction to quantum computing with Q# – Part 18, Quantum Fourier Transform</title>
      <link>https://www.strathweb.com/2021/04/introduction-to-quantum-computing-with-q-part-18-quantum-fourier-transform/</link>
      <pubDate>Thu, 01 Apr 2021 06:56:54 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2021/04/introduction-to-quantum-computing-with-q-part-18-quantum-fourier-transform/</guid>
      <description>&lt;p&gt;In today&amp;rsquo;s post we will explore one of the important algorithm building blocks in quantum computing theory, called the Quantum Fourier Transform. It is a quantum variant of the classical &lt;a href=&#34;https://en.wikipedia.org/wiki/Discrete_Fourier_transform&#34;&gt;Discrete Fourier Transform&lt;/a&gt; and is used in a number of algorithms such as Shor&amp;rsquo;s factoring algorithm, quantum phase estimation or quantum algorithm for linear systems of equations.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Introduction to quantum computing with Q# – Part 17, Grover’s algorithm</title>
      <link>https://www.strathweb.com/2021/03/introduction-to-quantum-computing-with-q-part-17-grovers-algorithm/</link>
      <pubDate>Fri, 19 Mar 2021 15:49:31 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2021/03/introduction-to-quantum-computing-with-q-part-17-grovers-algorithm/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://www.strathweb.com/2021/03/introduction-to-quantum-computing-with-q-part-16-quantum-search/&#34;&gt;Last time&lt;/a&gt; we looked at the basic theory behind quantum search based on the Grover&amp;rsquo;s algorithm. We went through the most basic case, a data set consisting of four items, and applied the algorithm to that, learning in the process that it managed to find the relevant entry we were looking for in a single step - compared to an average expected 2.25 steps required by the classical computation theory.&lt;/p&gt;
&lt;p&gt;In this part, we will look at the more general theory behind Grover&amp;rsquo;s algorithm, and implement the general Q# variant that can be used to find any number in an arbitrarily large data set.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Introduction to quantum computing with Q# – Part 16, Quantum search</title>
      <link>https://www.strathweb.com/2021/03/introduction-to-quantum-computing-with-q-part-16-quantum-search/</link>
      <pubDate>Fri, 05 Mar 2021 21:08:31 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2021/03/introduction-to-quantum-computing-with-q-part-16-quantum-search/</guid>
      <description>&lt;p&gt;In this post we will start exploring the topic of quantum search - the ability to locate a specific qubit state in an unsorted data set represented in a qubit register. We will look at the mathematics behind this problem, at the Q# code illustrating some basic examples and explain how the different building blocks fit together. This will help us lay ground for a more comprehensive discussion of the so-called Grover&amp;rsquo;s algorithm next time.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Introduction to quantum computing with Q# – Part 15, Deutsch-Jozsa algorithm</title>
      <link>https://www.strathweb.com/2021/02/introduction-to-quantum-computing-with-q-part-15-deutsch-jozsa-algorithm/</link>
      <pubDate>Thu, 25 Feb 2021 08:25:20 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2021/02/introduction-to-quantum-computing-with-q-part-15-deutsch-jozsa-algorithm/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://www.strathweb.com/2021/01/introduction-to-quantum-computing-with-q-part-14-deutschs-problem/&#34;&gt;Last time&lt;/a&gt;, we discussed a problem originally stated by David Deutsch, focusing on determining whether a function is constant or balanced. We found out that for that specific problem, quantum computing provides a much better query complexity than classical computing - as it can solve the task in a single blackbox function evaluation, while classical computing requires two function evaluations to provide the same answer.&lt;/p&gt;
&lt;p&gt;Today, we shall look at the generalization of that simple problem.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Introduction to quantum computing with Q# – Part 14, Deutsch’s problem</title>
      <link>https://www.strathweb.com/2021/01/introduction-to-quantum-computing-with-q-part-14-deutschs-problem/</link>
      <pubDate>Mon, 18 Jan 2021 20:08:22 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2021/01/introduction-to-quantum-computing-with-q-part-14-deutschs-problem/</guid>
      <description>&lt;p&gt;Over the course of this series, we have developed a solid foundational understanding of quantum computing, as we learned about the basic paradigms, mathematics and various computational concepts that characterize this unique disciple. We are now well equipped to start exploring some of the most important quantum algorithms - starting with today&amp;rsquo;s part 14, which will be devoted to a simple oracle problem formulated by David Deutsch.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Introduction to quantum computing with Q# – Part 13, CHSH Game</title>
      <link>https://www.strathweb.com/2021/01/introduction-to-quantum-computing-with-q-part-13-chsh-game/</link>
      <pubDate>Wed, 06 Jan 2021 21:43:21 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2021/01/introduction-to-quantum-computing-with-q-part-13-chsh-game/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://www.strathweb.com/2020/12/introduction-to-quantum-computing-with-q-part-12-bells-inequality/&#34;&gt;Last time&lt;/a&gt; we had an in-depth look at the original Bell&amp;rsquo;s inequality, and we wrote some Q# code that allowed us to quickly empirically test the predictions of quantum mechanics in that area.&lt;/p&gt;
&lt;p&gt;In today&amp;rsquo;s post, we will continue with a generalization of Bell&amp;rsquo;s inequalities, called Clauser-Horne-Shimony-Holt&lt;br&gt;
inequality (in short CHSH), and discuss a simple game based on that. In the process, we will arrive at a remarkable conclusions - we will learn that for a certain class of simple boolean logic problems, they can be solved more efficiently when adopting a quantum strategy compared to a classical &amp;ldquo;common sense&amp;rdquo; approach.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Introduction to quantum computing with Q# – Part 12, Bell’s inequality</title>
      <link>https://www.strathweb.com/2020/12/introduction-to-quantum-computing-with-q-part-12-bells-inequality/</link>
      <pubDate>Tue, 22 Dec 2020 14:33:50 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2020/12/introduction-to-quantum-computing-with-q-part-12-bells-inequality/</guid>
      <description>&lt;p&gt;After a short multi-part detour into the world of quantum cryptography, in this part 12 of the series, we are going to return to some of the foundational concepts of quantum mechanics, and look at the programmatic verification of Bell&amp;rsquo;s inequality.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Q# Advent Calendar 2020 – Creating Q# Compiler Rewrite Steps</title>
      <link>https://www.strathweb.com/2020/12/q-advent-calendar-2020-creating-q-compiler-rewrite-steps/</link>
      <pubDate>Mon, 14 Dec 2020 16:09:08 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2020/12/q-advent-calendar-2020-creating-q-compiler-rewrite-steps/</guid>
      <description>On this day 120 years ago, December 14 1900, Max Planck presented to the German Physical Society his work on spectral density of black body radiation, and postulated that electromagnetic energy could only be emitted in quantized packets. This date is now widely considered to be the the birth of quantum theory. The work of Planck sparked an explosion of theoretical and empirical work, which resulted in arguably the most intense and transformational periods in the history of science.</description>
    </item>
    
    <item>
      <title>Introduction to quantum computing with Q# – Part 11, EPR Quantum Key Distribution</title>
      <link>https://www.strathweb.com/2020/12/introduction-to-quantum-computing-with-q-part-11-epr-quantum-key-distribution/</link>
      <pubDate>Wed, 02 Dec 2020 22:24:49 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2020/12/introduction-to-quantum-computing-with-q-part-11-epr-quantum-key-distribution/</guid>
      <description>&lt;p&gt;In the last two posts we covered quantum key exchange using the &lt;a href=&#34;https://www.strathweb.com/2020/11/introduction-to-quantum-computing-with-q-part-10-b92-quantum-key-distribution/&#34;&gt;B92&lt;/a&gt; and &lt;a href=&#34;https://www.strathweb.com/2020/10/introduction-to-quantum-computing-with-q-part-9-bb84-quantum-key-distribution/&#34;&gt;BB84&lt;/a&gt; protocols. Both of those depended with their security on the &lt;a href=&#34;https://www.strathweb.com/2020/08/introduction-to-quantum-computing-with-q-part-6-no-cloning-theorem/&#34;&gt;no-cloning theorem&lt;/a&gt;. Today we are going to dedicate a third post to the topic of quantum key distribution, and this time around we will explore a variant of key distribution relying on the phenomenon of entanglement and quantum correlations.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Introduction to quantum computing with Q# – Part 10, B92 Quantum Key Distribution</title>
      <link>https://www.strathweb.com/2020/11/introduction-to-quantum-computing-with-q-part-10-b92-quantum-key-distribution/</link>
      <pubDate>Tue, 17 Nov 2020 20:50:49 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2020/11/introduction-to-quantum-computing-with-q-part-10-b92-quantum-key-distribution/</guid>
      <description>&lt;p&gt;In the &lt;a href=&#34;https://www.strathweb.com/2020/10/introduction-to-quantum-computing-with-q-part-9-bb84-quantum-key-distribution/&#34;&gt;last part&lt;/a&gt; of this series we started talking about the area of quantum cryptography, or more accurately, quantum key distribution. We dissected, in considerable amount of detail, the BB84 protocol, and discussed how it can lead to effectively unbreakable cryptography.&lt;/p&gt;
&lt;p&gt;Today we shall continue with quantum key distribution by looking at a sibling to BB84, the B92 protocol.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Introduction to quantum computing with Q# – Part 9, BB84 Quantum Key Distribution</title>
      <link>https://www.strathweb.com/2020/10/introduction-to-quantum-computing-with-q-part-9-bb84-quantum-key-distribution/</link>
      <pubDate>Fri, 16 Oct 2020 12:54:26 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2020/10/introduction-to-quantum-computing-with-q-part-9-bb84-quantum-key-distribution/</guid>
      <description>&lt;p&gt;This is already part 9 of the series (time flies!). So far we have covered a wide array of topic around the nature of quantum computational units called qubits, superposition, entanglement, single-qubit gates, multi-qubit gates and some interesting concepts from the area of quantum information theory. In this post we will shift our attention to another interesting field in the quantum landscape - quantum cryptography. More specifically, we will explore a reference protocol for quantum key distribution, called BB884, discuss why it&amp;rsquo;s secure even when using a public channel to exchange qubits and realize a simple demonstrative implementation using Q#.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Introduction to quantum computing with Q# – Part 8, Superdense coding</title>
      <link>https://www.strathweb.com/2020/09/introduction-to-quantum-computing-with-q-part-8-superdense-coding/</link>
      <pubDate>Wed, 16 Sep 2020 18:25:15 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2020/09/introduction-to-quantum-computing-with-q-part-8-superdense-coding/</guid>
      <description>&lt;p&gt;Last time, we discussed the &lt;a href=&#34;https://www.strathweb.com/2020/09/introduction-to-quantum-computing-with-q-part-7-quantum-state-teleportation/&#34;&gt;quantum teleportation protocol&lt;/a&gt;, which relies on the phenomenon of quantum entanglement to move an arbitrary quantum state from one qubit to another, even if they are spatially separated. Today, we shall continue exploring the scenarios enabled by entanglement, by looking at the concept called &amp;ldquo;superdense coding&amp;rdquo;. It allows communicating two classical bits of information between two parties, by moving only a single qubit between them.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Introduction to quantum computing with Q# – Part 7, Quantum state teleportation</title>
      <link>https://www.strathweb.com/2020/09/introduction-to-quantum-computing-with-q-part-7-quantum-state-teleportation/</link>
      <pubDate>Fri, 04 Sep 2020 04:50:56 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2020/09/introduction-to-quantum-computing-with-q-part-7-quantum-state-teleportation/</guid>
      <description>&lt;p&gt;In the &lt;a href=&#34;https://www.strathweb.com/2020/08/introduction-to-quantum-computing-with-q-part-6-no-cloning-theorem/&#34;&gt;previous part&lt;/a&gt; of the series we discussed how quantum theory prohibits copying of an arbitrary quantum state. In computing terms, this means that regardless of the richness of features provided by high-level quantum-specific languages such as Q#, we cannot implement a classical functionality of copy-and-paste on a quantum computer.&lt;/p&gt;
&lt;p&gt;It turns out, however, that we can achieve a cut-and-paste type of effect, through a remarkable process of quantum teleportation.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Introduction to quantum computing with Q# – Part 6, No-cloning theorem</title>
      <link>https://www.strathweb.com/2020/08/introduction-to-quantum-computing-with-q-part-6-no-cloning-theorem/</link>
      <pubDate>Mon, 17 Aug 2020 20:54:58 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2020/08/introduction-to-quantum-computing-with-q-part-6-no-cloning-theorem/</guid>
      <description>&lt;p&gt;In the &lt;a href=&#34;https://www.strathweb.com/2020/07/introduction-to-quantum-computing-with-q-part-5-entanglement/&#34;&gt;last part&lt;/a&gt; of this series we looked at the phenomenon of entanglement - one of the core concepts of quantum theory, which has been fundamentally important in the development of quantum information theory. We grappled with its deeply mysterious behavior and tried to understand and project its consequences onto the Q# code.&lt;/p&gt;
&lt;p&gt;In today&amp;rsquo;s part 6, we shall ask ourselves a seemingly innocent question - how to you clone a quantum state, or in other words, how do you copy a qubit?&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Running Q# compiler and simulation programmatically from a C# application</title>
      <link>https://www.strathweb.com/2020/08/running-q-compiler-and-simulation-programmatically-from-a-c-application/</link>
      <pubDate>Wed, 05 Aug 2020 09:56:55 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2020/08/running-q-compiler-and-simulation-programmatically-from-a-c-application/</guid>
      <description>&lt;p&gt;The QDK provides an excellent, low barrier way of getting started with Q# development - without having to deal with the compiler directly, or worrying about how to simulate the code you wrote on a classical device. Additionally, for more technically versed users, the Q# compiler is also available as a command line utility that can be used to fine tune the compilation experience and cater to complex scenarios. The QDK is &lt;a href=&#34;https://docs.microsoft.com/en-us/quantum/?view=qsharp-preview&#34;&gt;well documented&lt;/a&gt;, and the command line compiler provides good documentation as part of the application itself, but one of the things that is not widely known is that the Q# compiler can also be easily used programmatically - via its Nuget package.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s have a look.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Introduction to quantum computing with Q# – Part 5, Entanglement</title>
      <link>https://www.strathweb.com/2020/07/introduction-to-quantum-computing-with-q-part-5-entanglement/</link>
      <pubDate>Mon, 06 Jul 2020 13:15:50 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2020/07/introduction-to-quantum-computing-with-q-part-5-entanglement/</guid>
      <description>&lt;p&gt;In the &lt;a href=&#34;https://www.strathweb.com/2020/06/introduction-to-quantum-computing-with-q-part-4-multi-qubit-gates/&#34;&gt;last post&lt;/a&gt; in this series we dove deep into the mathematics and usage examples of multi-qubit gates, with special attention paid to one of the most critical gates in quantum computing, the CNOT gate.&lt;/p&gt;
&lt;p&gt;In today&amp;rsquo;s post we are going to explore the wonders of entanglement - a core concept of quantum mechanics and a critical idea for quantum computing, where it is obtained via the application of the CNOT gate.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Introduction to quantum computing with Q# – Part 4, multi-qubit gates</title>
      <link>https://www.strathweb.com/2020/06/introduction-to-quantum-computing-with-q-part-4-multi-qubit-gates/</link>
      <pubDate>Wed, 24 Jun 2020 18:07:08 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2020/06/introduction-to-quantum-computing-with-q-part-4-multi-qubit-gates/</guid>
      <description>&lt;p&gt;In the &lt;a href=&#34;https://www.strathweb.com/2020/05/introduction-to-quantum-computing-with-q-part-3-single-qubit-gates/&#34;&gt;previous post&lt;/a&gt; of this series, we discussed single qubit gates. In this next instalment, we are going to explore gates that act on multiple qubits at once, thus completing the exploration of quantum circuit building. We are also going to slowly, but diligently uncover the underlying theoretical scheme towards one of the most bizarre concepts in quantum mechanics - entanglement, which is something that will be dedicating the next part to.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Standalone Q# console applications</title>
      <link>https://www.strathweb.com/2020/06/standalone-q-console-applications/</link>
      <pubDate>Tue, 16 Jun 2020 16:39:19 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2020/06/standalone-q-console-applications/</guid>
      <description>Last week I wrote a guest post on the Q# community blog about the new standalone/self-contained Q# applications that were introduced in Microsoft Quantum Development Kit 0.11.2004.2825.
In the post I go over the various aspects of the feature, discuss the new @EntryPoint() attribute that was introduced into Q# and dive deeper into some implementation details. Enjoy the article!</description>
    </item>
    
    <item>
      <title>Introduction to quantum computing with Q# – Part 3, Single qubit gates</title>
      <link>https://www.strathweb.com/2020/05/introduction-to-quantum-computing-with-q-part-3-single-qubit-gates/</link>
      <pubDate>Wed, 20 May 2020 05:50:20 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2020/05/introduction-to-quantum-computing-with-q-part-3-single-qubit-gates/</guid>
      <description>&lt;p&gt;We left off in the last post after having discussed the Hadamard gate - our first quantum gate - and how it can be used to crate a uniform superposiiton for a single qubit. We are going to continue today by exploring other single qubit gates, discussing the underlying mathematics and, of course, testing it all out with some Q# code.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Introduction to quantum computing with Q# – Part 2, Superposition</title>
      <link>https://www.strathweb.com/2020/04/intro-to-quantum-computing-with-q-part-2-superposition/</link>
      <pubDate>Wed, 08 Apr 2020 19:52:34 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2020/04/intro-to-quantum-computing-with-q-part-2-superposition/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://www.strathweb.com/2020/03/intro-to-quantum-computing-with-q-part-1-the-background-and-the-qubit/&#34;&gt;In the previous post&lt;/a&gt; in this series we mentioned the concept of superposition briefly. Let&amp;rsquo;s use this second part to dive deeper into the mathematics of it, meet the cat of Schrödinger and try to find some simple quantum computing use cases for it.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Introduction to quantum computing with Q# – Part 1, The background and the qubit</title>
      <link>https://www.strathweb.com/2020/03/intro-to-quantum-computing-with-q-part-1-the-background-and-the-qubit/</link>
      <pubDate>Fri, 20 Mar 2020 15:12:40 +0000</pubDate>
      
      <guid>https://www.strathweb.com/2020/03/intro-to-quantum-computing-with-q-part-1-the-background-and-the-qubit/</guid>
      <description>&lt;p&gt;Quantum mechanics is one of the fundamental theories of physics, and has been tremendously successful at describing the behavior of subatomic particles. However, its counter-intuitive probabilistic nature, bizarre rules and confusing epistemology have troubled some of the greatest physicists of the 20th century, even prompting Albert Einstein to remark &amp;ldquo;Old Man (often translated as &amp;lsquo;God&amp;rsquo;) doesn&amp;rsquo;t play dice&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;In this post I am starting a new series that will introduce the basics of quantum computing - using examples in Q#.&lt;/p&gt;</description>
    </item>
    
  </channel>
</rss>
