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.
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.
- 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
-
Clone this repository:
git clone https://github.com/alephnan/QuantumRand cd QuantumRand -
Install the required Python packages:
pip install -r requirements.txt
-
Start the Flask server:
python app.py -
Open your browser and navigate to
http://localhost:5000 -
Use the interface to generate random numbers and view the comparison between quantum and classical methods
The package also provides a command-line interface for generating and comparing random numbers:
-
Generate random bits:
python -m quantum_random.main bits --num-qubits 3 --num-samples 1024 -
Generate random integers:
python -m quantum_random.main integers --min 1 --max 100 --num-samples 1000 -
Compare quantum and classical distributions:
python -m quantum_random.main compare --type bits --num-qubits 3 --num-samples 1000 --plot -
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.
-
quantum_random/- Contains the quantum random number generation codeqrng.py- Implementation of the quantum random number generatorcomparison.py- Code to compare quantum and classical random numbers
-
frontend/- Web interface filesindex.html- Main HTML filescript.js- JavaScript for handling charts and datastyle.css- CSS styling
-
app.py- Flask server for serving the web interface and handling API requests
- Quantum random bits are generated by placing qubits in superposition using Hadamard gates
- Measurements of these qubits collapse the superposition, yielding truly random outcomes
- Classical random bits are generated using Python's
randommodule - Both sets of random data are analyzed and compared using statistical methods
- Results are visualized in the web interface using Chart.js