Git Product home page Git Product logo

qff22-qrng's Introduction

Quantum Random Generation Challenge

This challenge is proposed by Constantine Quantum Technologies for the Qiskit Fall Fest 2022 at Algiers organized by Women Techmakers Algiers & GDG Algiers

Introduction

Random number generation is an essential subroutine for many algorithms and applications. There has been a lot of progress to develop algorithms to generate random numbers on a classical computers (what is known as Pseudo-Random Number Generation). But as Von Neumann, said:

Anyone who considers arithmetical methods of producing random digits is, of course, in a state of sin.

The reason for that is that the random numbers generated through arithmetic methods are reproducible and have repeating patterns and this is undesirable for many critical applications like cryptography. Ideally, we would like to build a random number generator which outputs unbiased bitstrings, unpredictable, and with high rate.

  • Unbiased: the probability to have a 0 in the bitstring is equal to the probability to have a 1, and the probability to have any sequence of bits is equal to the probability to have any other sequence of bits that has the same length.

  • Unpredictable: if someone knows the algorithm/circuit used to generate the random numbers and also has access to other information like the seed, he should be unable to generate the same bitstring as you.

  • High rate: the algorithm/circuit is able to output a large number of random bits.

Tasks

For this challenge, you are asked to:

  1. Write a paragraph to explain how can you use a quantum system/concept to generate a random bitstring.

  2. Implement the ideas that you came up with in the above paragraph by coding a quantum circuit in Qiskit and execute it on a simulator qasm_simulator.

  3. Try to execute your circuit on a fake noisy backend. What do you observe? Compare the results you got from the simulator and from the fake noisy backend (you can use a metric called entropy). Try to explain the difference?

  4. Try to come up with a list of ideas to improve the results that you got in task (3)?

  5. Implement one (or more :)) of the ideas that you came up with in task (4) and try to improve the results of task (3).

  6. Execute your circuit on a IBMQ real quantum-device.

Notes:

  • A bitstring: is a sequence (list/array/string/...) of 0 and 1 e.g: 011010.

  • We expect the paragraphs in the tasks (1) and (4) to be detailed enough to show that you are understanding what you are doing and why you are doing it.

  • Save the bitstrings generated in tasks (2), (3), (5), and (6) on the hard drive.

  • The ideas of task (4) can be classical or quantum.

  • If you implemented multiple ideas in task (5), try to compare them and see which one works best and try to explain why.

Have fun and we look forward to your submission :D !

qff22-qrng's People

Contributors

belaloui avatar taha-rouabah avatar mmlouamri avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.