Skip to main content

Determinism is for losers - make your decisions using quantum mechanics.

Project description

Quantum Coin Flip

Flipping a coin is for losers; use quantum mechanics instead.

Install

It's on pypi here: pip install qflip-CQPANCOAST. To uninstall, pip uninstall qflip-CQPANCOAST.

I use this repository for Python packaging practice, as the function is so simple.

The Code

Hey, I'm not a loser. What's going on?

A lab at ANU is continually making measurements on the quantum vacuum and then putting binary versions of that up on the internet. Here it is!

I originally wrote this code by adapting an html parser from here for my students in a Computational Methods in Physics class that I was a course assistant for, Spring 2019. The script came later: flipping a coin was too deterministic for me, so I wrote a python script for the shell that gives me truly random quantum measurements! Most of the code is mine now, but I figure I should still credit the guy or gal.

How do I use it?

Just type in qflip and then the number of things you have to choose between. The program will:

  • take a huge number from the ANU quantum random number generator,
  • split it into a bunch of still big ones),
  • store those numbers in a json file in ~/.qflip,
  • and mod it by the number you specify.

If you don't spefcify a number, it'll choose 2.

$ qflip
0
$ qflip
1
$ qflip
1
$ qfilp 27
13
$ qflip 0      # This will throw a ValueError.
$ qflip -1     # So will this...
$ qflip beans  # ...and this.
$ qflip 1      # This is fine, though not useful.
0

Need to decide what I'll have for dinner? If I have four options, I just assign each of them a number from 0 to 3, and type qflip 4 into the prompt.

Need to decide what homework assignment I'll do first? If I have seventeen options... well, you get the point.

The Physics

No, but really, what's going on here?

First of all, there's no way of testing the experimentally, but many (including me) are of the opinion that thinking about this any other way requires mangling the beautiful, beautiful math.

Here's what's up: in laymans terms, before we observe Schrodinger's cat, it is in a superposition of states: neither dead nor alive. Then, we open the box to make our observation. It looks to us like cat is now definitely alive or dead, but really, we have split into someone who saw the cat live and someone who saw the cat die, just like the cat had split earlier! This isn't the place to go into how quantum mechanics works, but what you need to know is that there's a totally real other universe where the numbers in the picture above are different. Isn't that cool?

When I use this program to decide what shirt to wear, I end up wearing all of them – but it looks to me like I chose one. We are part of the universe, and we also follow the strange laws of quantum mechanics.

If you want further explanation, first do some reading on quantum mechanics (The Feynman Lectures are always a great place to start), then check out Hugh Everett's Theory of the Universal Wavefunction, more popularly known as the "Many Worlds" interpretation of quantum mechanics.

Again, no way of testing this experimentally, but it sure makes the most sense to me. Debating interpretations of quantum mechanics is exhuasting, so if you're looking for arguments one way or the other, you're free to look online.

Dear reader, there are so many people smarter than I am.

If you're looking to use the ANU quantum random number server for actual work, don't use this repo — this is just a silly thing I made, functional though it is. This project, on the other hand, has a wide array of utility. Check it out!

This is also pretty cool.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qflip-CQPANCOAST-1.0.2.tar.gz (4.3 kB view details)

Uploaded Source

Built Distribution

qflip_CQPANCOAST-1.0.2-py3-none-any.whl (5.5 kB view details)

Uploaded Python 3

File details

Details for the file qflip-CQPANCOAST-1.0.2.tar.gz.

File metadata

  • Download URL: qflip-CQPANCOAST-1.0.2.tar.gz
  • Upload date:
  • Size: 4.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.4.0.post20200518 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.3

File hashes

Hashes for qflip-CQPANCOAST-1.0.2.tar.gz
Algorithm Hash digest
SHA256 6889bd922d7bda185b4448b3f01acffe93f02ab27f1fdfd2cdce1fc14552ca65
MD5 bdc441928ad5abfde030a43025ccbf74
BLAKE2b-256 366b34b9731988ce176ec3a487e0473e2a5067810fbaa57ac16cefec67ea1673

See more details on using hashes here.

File details

Details for the file qflip_CQPANCOAST-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: qflip_CQPANCOAST-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 5.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.4.0.post20200518 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.3

File hashes

Hashes for qflip_CQPANCOAST-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f7f879d4a567449144f61a8641602e44865c2e1ce9c969d92548087877c4eaa0
MD5 c055170fc123dd117864ac718f75056c
BLAKE2b-256 c4fb68a120496bb2bb3d4c55c909c1bc336f091a8dc262c4b5a898a55c59e51a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page