2 个版本

使用旧 Rust 2015

0.1.1 2018年2月7日
0.1.0 2018年2月7日

#396 in 模拟

MIT 许可证

20KB
428

Rusq

crates.io docs.rs Build Status

Rust 量子计算模拟器

概述

Rusq 是一个纯 Rust 编写的门型量子计算机模拟库。

Rusq 的设计高度受到 Q# 的启发。基本上,只实现了“物理上安全”的操作 - 默认情况下无法获得非物理信息,如波函数的振幅。

特性

  • 测量和投影
  • 基本量子门
    • $X, Y, Z$, Hadamard, identity, CNOT, CCNOT

如何使用

首先,将以下内容添加到 Cargo.toml

[dependencies]
rusq = { version = "*", git = "https://github.com/hajifkd/rusq.git" }

有关示例代码,请参阅以下部分。

示例

例如,您可以创建 EPR 对如下

extern crate rusq;

use rusq::prelude::*;

fn set(sim: &mut QuantumSimulator, qubit: &Qubit, r: MeasuredResult) {
    if sim.measure(qubit) != r {
        sim.X(qubit);
    }
}

fn main() {
    let mut sim = QuantumSimulator::new(2);
    let qubits = sim.get_qubits();
    let measure_count = 10000;

    for _ in 0..measure_count {
        set(&mut sim, &qubits[0], MeasuredResult::Zero);
        set(&mut sim, &qubits[1], MeasuredResult::Zero);

        sim.H(&qubits[0]);
        sim.CNOT(&qubits[0], &qubits[1]);

        assert_eq!(sim.measure(&qubits[0]), sim.measure(&qubits[1]));
    }
}

有关其他类型的示例,请查看 tests 目录。欢迎提交拉取请求以实现量子计算的另一个示例。

许可证

MIT

依赖关系

~2.5MB
~41K SLoC