In this series of posts, we’re exploring a famous algorithm called Shor’s Algorithm. In the last post, we talked about using phase estimation to do order finding. In this post, we’re going to explore how phase estimation works. What problem does phase estimation solve? Phase estimation solves the problem of...
Read More
In this series of posts, we’re exploring a famous algorithm called Shor’s Algorithm. In this post, we’re going to look at how we do order finding on a quantum computer using something called phase estimation. Order Finding: A reminder Let’s start with a reminder of what the problem of order...
Read More
In this series of posts, we’re exploring a famous algorithm called Shor’s Algorithm. In the last post, we saw how to use order finding to factorise a number. This relied on being able to quickly compute the gcd of two numbers. Thankfully we can do this fast classically using Euclid’s...
Read More
In this series of posts, we’re exploring a famous algorithm called Shor’s Algorithm. In this post, we will split it unto two parts: a quantum part and a classical part and then we will explain the classical part Order Finding Shor’s algorithm can be split into two parts. The first...
Read More
In this series of posts, we’re exploring a famous algorithm called Shor’s Algorithm. In this post, well give a quick outline of how RSA works so you can understand why being able to efficiently factor large numbers is a problem for it. What is RSA? RSA is a public key...
Read More
In this series of posts, we’re exploring a famous algorithm called Shor’s Algorithm. In this post, we’re going to dive into the basic number theory we’re going to need to understand it. Greatest Common Divisors First, let’s recap the definition of a prime number: an integer greater than 1 where...
Read More
In this series of posts, we’re going to explore a famous algorithm called Shor’s Algorithm. We’ll break it down piece by piece so anyone can follow along. In this first post, I’ll explain what problem it solves and why we should care about it. What problem does Shor’s Algorithm solve?...
Read More
In this post, we’re going to take a look at what encryption is and how quantum computing can help with it using quantum key distribution Encryption and Keys Encryption is the art of encoding messages so that other people can’t read them. This is extremely useful in all sorts of...
Read More
In super dense coding, we used a qubit to send 2 bits of classical information, quantum teleportation is a way of using classical bits to send a qubit. The Setup Once again, we have Alice and Bob, they meet up and create a pair of qubits in the entangled state:...
Read More
I first became interested in Quantum Computation when I was 15 but at the time I really struggled to start learning it. On reflection, this wasn’t because it was too hard for me to learn, but rather I didn’t know what order to learn the things in and I didn’t...
Read More
Now, we’ve learnt a little bit about quantum computing let’s get started by programming one. Python We’re going to be using the Python programming language to start writing quantum programs. So I’m going to assume you know a little bit of Python and have it installed locally. I’m also going...
Read More
Note: This is a rework of an earlier post. You can checkout the original here What is the No Cloning Theorem? In normal computers, we can copy the state of a bit. This is used all of the time. For instance, we might take the output of one operation and...
Read More
Note: This is a rework of an earlier post. You can check out the original here We are finally ready to look at some applications of quantum computation. We’re going to start by looking at super-dense coding which allows us to send 2 classical bits of information by sending one...
Read More
You might have heard of quantum entanglement and how spooky it is. But in this post, we’ll dive into what it really is. Two qubit systems Entanglement is a phenomenon that happens between two or more quantum systems. For us, we’ll use qubits. So let’s recap from last time that...
Read More
Last time, we talked about single qubit gates, but to do anything really interesting we need to make use of multiple qubits. Describing Multi Qubit Systems Before we talk about gates acting on multiple qubits, we need to talk about describing systems of multiple qubits. When we had 1 qubit,...
Read More
We’re finally ready to start getting into some actual quantum computing. In our last post, we introduced the qubit. This was a quantum state of the form: \[a\ket{0} + b\ket{1}\] We said that it evolves in time according to some unitary matrix U. In Quantum Computing, there is the idea...
Read More
We finally know enough mathematics that we can start delving into quantum mechanics. Representing states To get started with quantum mechanics, let’s imagine we have a coin. When we flip a coin, we find that it can either be heads or tails. We say the coin is either in the...
Read More
In this post, we’re going to be discussing what Hermitian matrices are. Transpose of a matrix Let’s start by learning about the transpose of a matrix. The transpose of a matrix is just flipping the matrix so that every row becomes a column and vice versa. For example, if I...
Read More
Let’s consider a matrix A and a vector v. When we multiply A and v together we get back another vector w. So \[Av = w\] Normally w is completely different to v. However, sometimes w is multiple of v. What I mean by this is that there is some...
Read More
What is a linear map? Let f be a map between two vector spaces If \[f(av + bw) = f(av) + f(bw)\] where v,w are vectors and a and b are scalars then f is a linear map Linear maps are completely determined by its action on the basis Let...
Read More
In this post, we’re going to explore what matrices are and the rules for working with them. For now, these rules might seem a bit arbitrary but we’ll see in a later post that they actually come from a really interesting place. Matrices as grids of numbers A matrix is...
Read More
What is a linear combination? We have talked about how in a vector space you can add vectors together and multiply them together. These two operations allow us to talk about linear combinations of vectors Given two vectors v and w we know that \[z = av + bw\] Where...
Read More
What is an inner product? Last time, we talked about vector spaces and we said that they have two binary operations: vector addition and scalar multiplication. We can add a third operation called an inner product to a vector space to turn it into an inner product space. An inner...
Read More
Vector Space A vector space is a collection of two sets and two binary operations. The first set we’ll call V and it is the set of vectors. It can be any set you want. The second set we’ll call S and is the set of scalars. This means it...
Read More
Last time, we talked about complex numbers as numbers of the form a + bi where i is the square root of -1. This is true but there is another way of writing them which is sometimes more helpful. Polar Form Let’s start by recalling the argand diagram where we...
Read More
The name complex numbers is misleading since complex numbers are not complex at all - so let’s dive in. What are Imaginary Numbers? In school, you were told that you cannot take the square root of negative numbers, in fact, you can. Let’s start with the square root of -1...
Read More
What is a map? A map is a way of relating items in one set to items in another set. If we have a map called f from set A to set B we write: \[f : A \rightarrow B\] Let’s see an example. If we have the sets \[A...
Read More
I wanted to write an easy to follow guide for Quantum Computing so in order to do this I thought I’d build it up piece by piece starting with the mathematical foundations needed. So to start it all off I’ll start by talking about set theory - the building block...
Read More
Over the last year I’ve spent a lot of time thinking about start ups. One day, my co founder asked me what would I look for if I was an angel investor. Sadly, I do not have the money to angel invest myself but it was an interesting thought experiment....
Read More
As I’ve been studying Quantum Computing I came across Diffie Hellman but it took me a while to get my head around it. So I thought I would try to explain it. Symmetric Ciphers To understand Diffie Hellman let’s talk about symmetric ciphers. A symmetric cipher is when we encrypt...
Read More
Recently, I’ve been thinking about why I like writing. I’ve always enjoyed writing. That’s why I started this blog. As a little kid, I used to write stories and songs (although I did get put off the whole thing for a while in high school). But why do I enjoy...
Read More
When we talk about measuring some value we don’t give it a lot of thought. But this changes when you are working with Quantum Mechanics. The results of your measurements probabilistic and you will also change the system itself by the act of measuring it. This makes working with Quantum...
Read More
Making coffee is all about dissolving coffee beans in water and we’ve come up with a myriad of ways to do it. But getting into this hobby can be overwhelming with plenty of confusing terms being thrown around. This post aims to explain the basic terms you’ll hear and how...
Read More
As I’ve been learning Quantum Computing, I’ve had to learn some Computer Science along the way. One of the concepts I’d heard of but I hadn’t understood until recently was that of a Turing Machine. To understand what a Turing Machine was, I decided to write one in Haskell. Setting...
Read More
The Deutsch Jozsa Algorithm is a quantum algorithm that solves a problem with few practical applications. It is notable for being one of the earliest demonstrations of a problem that can be solved faster on a quantum computer than on a classical computer. The Problem Imagine we have a black...
Read More
One interesting application of Quantum Computing is the ability to send information using fewer bits. This is known as superdense coding. Specifically, super dense coding allows us to send 2 classical bits of information by sending one qubit. To see how this works let’s go through an example. The Setup...
Read More
In normal computers, we can copy the state of a bit. This is used all for the time. For instance, we might take the output of one operation and feed it into several others. When we do this at the circuit level this is called fanout. But, we cannot do...
Read More
The other weekend my Twitter blew up talking about a vulnerability in something called Log4j. Based on the number of tweets I saw I assumed it was bad but I had no idea what Log4j was or what had happened. This led me down the rabbit hole of trying to...
Read More
I intended to write a blog post on the No Cloning Theorem. But as I was writing it I realised to make it accessible I needed a mathematical primer that I could point people to. So that is what this is: the bare minimum of maths needed to understand basic...
Read More
I’ve been interested in Quantum Computing ever since I heard about it when I was 15. Recently, I’ve become more intrigued by it and have decided to invest some time in learning it. But what is it about this field that interests me? Well, the short answer is that I...
Read More
Apache Kafka is a very powerful piece of software. But it can very confusing to get started with. The aim of this post is to outline the structure of Kafka and how it might be helpful to you. What is Kafka? Apache Kafka is an events streaming platform. This means...
Read More
DNA sequencing has been a technological revolution. It has many application from medicine to forensics. It also has some clever mathematics behind. In this article I aim to explore the basics of the application of graph theory to DNA sequencing. What is DNA sequencing? DNA is the building block of...
Read More
Mathematics and software engineering have a tumultuous relationship. Some people think you need to be a great mathematician to be a great software engineer. Others believe you don’t need to know any sophisticated maths to be an amazing engineer. There is some truth to both sides to this argument and...
Read More
Microservices are commonplace among technology companies of all sizes and in this post, I hope to explore some of the pros and cons of them and what you should consider when deciding if they are a good solution for the problems you’re solving. Let’s start by quickly addressing a common...
Read More
One of the most common features of most theories of knowledge is that our beliefs must have some justification to count as knowledge. To explore why want justification let us as part of our theory of knowledge let us consider the Justified True Belief (JTB) theory of knowledge which states...
Read More
In order to address what scientific knowledge should be aimed at we must first establish what scientific knowledge is. It seems to me there are broadly two ways to understand the term. The first is that ‘scientific knowledge’ refers to items of ‘knowledge’ (we shall look at different definitions of...
Read More
Knowledge has been defined in the past as justified true belief, formally, that means for subject S to know proposition P then: P must be true S must believe P S must have justification for their belief in P However, this definition relies on the notion of objective truth which...
Read More
Batches in Cassandra are an often misunderstood topic and this will hopefully serve as a guide to beginners to help them make sense of them. In order to understand batches you first have to get your head around partitions. In Cassandra, data is distributed across several computers; to work out...
Read More
A while ago I posted about my idea to try and teach myself a Physics degree. Since then, although progress has been slow, progress has been made. I have completed the Classical Mechanics, Quantum Mechanics and Special Relativity & Classical Field Theory courses from Leonard Susskind’s The Theoretical Minimum and...
Read More
I have come up with a slightly bonkers plan (partially inspired by this article). So here’s a blog post explaining what I’m doing and why I’m doing. Motivation Having just finished high school, I was faced with the dilemma, of what to do next: university or the world of work....
Read More
Hello, this is the start of my new blog. I am a software developer and a student in my final year of High School. Here I will be documenting any interesting things I learn, whether in school or out of it.
Read More