Skip to content

About

A Python application that implements a Quantum Random Number Generator (QRNG) using Qiskit and compares it with classical pseudo-random number generation. This project demonstrates the fundamental difference between quantum randomness (based on quantum mechanical principles) and classical randomness (based on deterministic algorithms).

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

Repository files navigation

QuantumRand - Quantum Random Number Generator

A project that implements a Quantum Random Number Generator (QRNG) using Qiskit and compares it with classical random number generation using Python's built-in random module.

Overview

This project leverages quantum computing principles to generate truly random numbers. By placing qubits in a superposition state and measuring them, we obtain random bits that are fundamentally different from classical pseudo-random number generators.

Features

  • Generate random numbers using a quantum circuit built with Qiskit
  • Compare quantum randomness with classical pseudo-random numbers
  • Visualize the distributions through an interactive web interface
  • Command-line interface for scripting and automation

Installation

  1. Clone this repository:

    git clone https://github.com/alephnan/QuantumRand
    cd QuantumRand
    
  2. Install the required Python packages:

    pip install -r requirements.txt
    

Usage

Web Interface

  1. Start the Flask server:

    python app.py
    
  2. Open your browser and navigate to http://localhost:5000

  3. Use the interface to generate random numbers and view the comparison between quantum and classical methods

Command-Line Interface

The package also provides a command-line interface for generating and comparing random numbers:

  1. Generate random bits:

    python -m quantum_random.main bits --num-qubits 3 --num-samples 1024
    
  2. Generate random integers:

    python -m quantum_random.main integers --min 1 --max 100 --num-samples 1000
    
  3. Compare quantum and classical distributions:

    python -m quantum_random.main compare --type bits --num-qubits 3 --num-samples 1000 --plot
    
  4. Save results to a file:

    python -m quantum_random.main bits --num-qubits 4 --output results.json
    

Run python -m quantum_random.main --help to see all available options.

Project Structure

  • quantum_random/ - Contains the quantum random number generation code

    • qrng.py - Implementation of the quantum random number generator
    • comparison.py - Code to compare quantum and classical random numbers
  • frontend/ - Web interface files

    • index.html - Main HTML file
    • script.js - JavaScript for handling charts and data
    • style.css - CSS styling
  • app.py - Flask server for serving the web interface and handling API requests

How It Works

  1. Quantum random bits are generated by placing qubits in superposition using Hadamard gates
  2. Measurements of these qubits collapse the superposition, yielding truly random outcomes
  3. Classical random bits are generated using Python's random module
  4. Both sets of random data are analyzed and compared using statistical methods
  5. Results are visualized in the web interface using Chart.js

License

MIT License

About

A Python application that implements a Quantum Random Number Generator (QRNG) using Qiskit and compares it with classical pseudo-random number generation. This project demonstrates the fundamental difference between quantum randomness (based on quantum mechanical principles) and classical randomness (based on deterministic algorithms).

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages