Qiskit Random Number Generator.
Project description
Qiskit Random Number Generation
Qiskit is an open-source framework for working with noisy intermediate-scale quantum computers (NISQ) at the level of pulses, circuits, and algorithms.
This project contains support for Random Number Generation using Qiskit and IBM Quantum Experience backends. The resulting raw numbers can then be passed to Cambridge Quantum Computing (CQC) randomness extractors to get higher-quality random numbers.
Installation
You can install the project using pip:
pip install qiskit_rng
PIP will handle all python dependencies automatically, and you will always install the latest (and well-tested) version.
Usage
Setting up the IBM Quantum Provider
You will need setup your IBM Quantum Experience account and provider in order to access IBM Quantum backends. See qiskit-ibmq-provider for more details.
Generating random numbers using an IBM Quantum backend
To generate random numbers using an IBM Quantum backend:
from qiskit import IBMQ
from qiskit_rng import Generator
IBMQ.load_account()
rng_provider = IBMQ.get_provider(hub='MY_HUB', group='MY_GROUP', project='MY_PROJECT')
backend = rng_provider.backends.ibmq_ourence
generator = Generator(backend=backend)
output = generator.sample(num_raw_bits=1024).block_until_ready()
print(output.mermin_correlator)
The output
you get back contains useful information such as the
Weak Source of Randomness (result.wsr
) used to generate the circuits, the resulting bits
(result.raw_bits
), and the Mermin correlator value (result.mermin_correlator
).
Using CQC extractors to get highly random output
If you have access to the CQC extractors, you can feed the outputs from the previous step to obtain higher quality random numbers:
random_bits = output.extract()
The code above uses the default parameter values, but the extractor is highly configurable. See documentation for some use case examples and parameter suggestions.
Documentation
Usage and API documentation can be found here.
License
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
Built Distribution
File details
Details for the file qiskit_rng-0.2.2.tar.gz
.
File metadata
- Download URL: qiskit_rng-0.2.2.tar.gz
- Upload date:
- Size: 14.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/52.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.7.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 88e010c2b7d29dc51672717f8bce7d662b50e3ee120ac6e91b592a2add2cef4d |
|
MD5 | dd28acdfd2f77cb094e047b39e4a8f47 |
|
BLAKE2b-256 | d7418e685e16034b5960d2c506202bea50cd08ea5087d65824ed2b25b9f8dbc7 |
File details
Details for the file qiskit_rng-0.2.2-py3-none-any.whl
.
File metadata
- Download URL: qiskit_rng-0.2.2-py3-none-any.whl
- Upload date:
- Size: 21.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/52.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.7.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9effc6e2093b966497c8556cd14d220b6f25dace68093691effe55eb066f334b |
|
MD5 | 38c3a5377839031c7d06de5b8ca8a397 |
|
BLAKE2b-256 | 1cddb2b4385cfd99eb513d14421fc3c992a1dd5f5182e969be09342cda722d34 |