1 个不稳定版本
0.1.0 | 2019年4月10日 |
---|
#10 in #quantum-computer-simulator
在 2 个crate中(通过 q1tsim)使用
6KB
q1tsim
一个简单、高效的量子计算机模拟器。
概述
q1tsim是一个量子计算机的模拟器库,用Rust编写。它的目标是成为一个易于使用、高效的模拟器,用于量子算法的开发和测试。
特性
- 易于实现和模拟量子电路
- 支持创建任意量子门
- 已包含大多数常见的量子门
- 在
X
、Y
或Z
基础上进行测量 - 测量不影响量子状态的可能性
- 创建多次运行测量结果的直方图
- 基于经典值的条件操作
- 将电路导出到Open QASM和c-QASM,以便在其他计算机或模拟器上运行程序
- 将电路导出到LaTeX,用于绘制电路图
- 高效模拟稳定电路
用法
要在Rust应用程序中使用q1tsim,请将以下内容添加到您的 Cargo.toml
文件中
[dependencies]
q1tsim = "0.5"
以下是一个示例,演示了|000>量子状态的3量子比特量子傅里叶变换
extern crate q1tsim;
use q1tsim::{circuit, gates};
fn main()
{
// The number of times this circuit is evaluated
let nr_runs = 8192;
// Create a quantum circuit with 3 quantum bits and 3 classical (measurement)
// bits. The circuit starts by default with all quantum bits in the |0⟩ state,
// so in this case |000⟩.
let mut circuit = circuit::Circuit::new(3, 3);
// Set up a 3-qubit quantum Fourier transform
// There is no predefined method on Circuit that implements a controlled
// `S` or `T` gate, so we use the `add_gate()` method for those.
circuit.h(2);
circuit.add_gate(gates::CS::new(), &[1, 2]);
circuit.add_gate(gates::CT::new(), &[0, 2]);
circuit.h(1);
circuit.add_gate(gates::CS::new(), &[0, 1]);
circuit.h(0);
circuit.add_gate(gates::Swap::new(), &[0, 2]);
// Measure all quantum bits in the Pauli `Z` basis
circuit.measure_all(&[0, 1, 2]);
// Actually calculate the resulting quantum state and perform the measurements,
// averaging over `nr_runs` runs.
circuit.execute(nr_runs);
// And print the results.
let hist = circuit.histogram_string().unwrap();
for (bits, count) in hist
{
println!("{}: {}", bits, count);
}
}
结果应该是八个可能状态(000、001、...、111)的相对均匀分布。
在 docs.rs 上阅读完整的API文档。
lib.rs
:
此crate为qt1sim量子计算机模拟器提供派生宏。有关更多详细信息,请参阅 crate文档。
依赖关系
~2MB
~47K SLoC