QIP:Rust中的量子计算模拟

量子计算库利用图形构建来构建有效的量子电路仿真。对于借口模型的量子计算,Rust是一种很棒的语言,因为借位检查器与无克隆定理非常相似。

请参阅Github仓库的examples目录中的所有示例。

范例(CSWAP)

这是一个小电路的示例,其中两组寄存器在第三个寄存器之间交换。该电路非常小,只有三个操作加上一个测量值,因此,与之相比,样板看起来会很大,但是这种设置能够在电路变大时轻松、安全地构造电路。

use qip::*;// Make a new circuit builder.
let mut b = OpBuilder::new();// Make three registers of sizes 1, 3, 3 (7 qubits total).
let q = b.qubit();  // Same as b.register(1)?;
let ra = b.register(3)?;
let rb = b.register(3)?;// We will want to feed in some inputs later, hang on to the handles
// so we don't need to actually remember any indices.
let a_handle = ra.handle();
let b_handle = rb.handle();// Define circuit
// First apply an H to r
let q = b.hadamard(q);
// Then swap ra and rb, conditioned on q.
let (q, _, _) = b.cswap(q, ra, rb)?;
// Finally apply H to q again.
let q = b.hadamard(q);// Add a measurement to the first qubit, save a reference so we can get the result later.
let (q, m_handle) = b.measure(q);// Now q is the end result of the above circuit, and we can run the circuit by referencing it.// Make an initial state: |0,000,001> (default value for registers not mentioned is 0).
let initial_state = [a_handle.make_init_from_index(0b000)?,b_handle.make_init_from_index(0b001)?];
// Run circuit with a given precision.
let (_, measured) = run_local_with_init::<f64>(&q, &initial_state)?;// Lookup the result of the measurement we performed using the handle, and the probability
// of getting that measurement.
let (result, p) = measured.get_measurement(&m_handle).unwrap();// Print the measured result
println!("Measured: {:?} (with chance {:?})", result, p);

Github仓库

博客文章

用Rust编写的Trello CLI客户端

首先,在path上创建一个配置文件~/.config/tro/config.toml。设置hostkeytoken的值:

host = "https://api.trello.com"
key = "<MYKEY>"
token = "<MYTOKEN>"

该工具中的大多数子命令通过指定以下形式的一种或多种模式来工作:

<board> <list> <card>

模式是简单的正则表达式模式匹配。您也可以指定简单的模式,例如子字符串。

然后,Trello-rs尝试使用此过程查找您请求的对象:

  • 如果该工具无法找到一个或多个指定项的匹配项,则它将: 显示适当的错误。

  • 如果该工具设法为指定的每个项目找到唯一的匹配项,则它将成功: 显示您请求的对象。

  • 如果一个或多个模式与多个可能的项目匹配,则该工具将失败: 检索您请求的对象,并尽力解释原因。

项目详情请访问GitHub仓库。

ureq HTTP客户端库的未来

该库提供一个方便的具有最小的依赖关系树和明显的API的请求库。

ureq来自以用户需求为中心(或者也许是“人体工程学”?)库的想法。SuperAgent是简单易用的API的一大灵感。这并不是说reqwest不容易使用,reqwest还是可以的。但是,面对简易API和高性能API之间的折衷,它又向“简易”迈进了多远呢?

Hyper是reqwest的主要支撑,其主要目标是“ 为Rust提供快速、正确的 HTTP 实现”。这有时会将重要信息“泄漏”给用户。

具有明确的“用户至上”理念的库可能仍然是一个好的出发点。将用户输入视为“让它起作用”的作用,而不是强制正确性。

前往GitHub阅读文章原文。

部署容器运行时的Shim:交互式容器

容器只是孤立的Linux进程的幻像。每个进程都有一个stdin流从stdout / stderr流中读取输入数据,并将产生的输出打印到该输出中。容器也是如此。

从前面的文章中我们了解到,当我们创建一个容器时,其stdoutstderr会受到相应的运行时填充程序进程的控制。通常,这些流的内容将转发到容器日志文件。读者还可以注意到,容器的标准输入流只是默默地设置为/dev/null

但是,如果我们想将一些数据发送到容器的stdin并在运行时将其stdout和/或stderr流返回该怎么办?至少在调试会话期间,这个工具就可能非常有用。

上面的图只是一个简化。由于Docker(或Kubernetes)分层设计,在流数据的方式上可能会有更多的中间组件,因此图上的容器管理器应被视为容器管理软件的相当高级的抽象。最接近图真实世界的设置将会是crictl(作为一个命令行客户端)与交互CRI-O (作为CRI兼容的容器管理器)。

至少在以下情况下,我们可以发现在第三方应用的相同的交互式容器技术:

# Docker
docker run -i   # or --interactive
docker attach   # interactive by default
docker exec -i  # or --interactive# Kubernetes
kubectl run --stdin     # or -i
kubectl run --attach
kubectl attach --stdin  # or -i
kubectl exec --stdin    # or -i# ctr (containerd CLI)
ctr run  # interactive by default# CLI for kubelet CRI
crictl attach --stdin

前往作者个人博客浏览更多信息。


From 日报小组 @Lance

【Rust日报】2020-01-27 QIP:Rust中的量子计算模拟相关推荐

  1. 泰坦以太(以太流说) titan_ysl 2020.01.27

    泰坦以太(以太流说) titan_ysl 2020.01.27 从学习物理到现在,几十年来,我一直认为以太的存在能最合理地解释许多物理现象,但由于一直没人给于其适当的定义,导致其被废弃,从而让现代物理 ...

  2. 全球及中国通信中的量子计算行业十四五规划方向与运营前景研究报告2022版

    全球及中国通信中的量子计算行业十四五规划方向与运营前景研究报告2022版 --------------------------------------- [修订日期]:2021年12月 [搜索鸿晟信合 ...

  3. 【Rust 日报】2021-07-04 如何在面试中确定 Rust 程序员水平?

    如何在面试中确定 Rust 程序员水平? 对于这个问题,张汉东老师在 RustFriday 飞书群线上沙龙第十三期中进行了分享: 视频:RustFriday 飞书群线上沙龙 第十三期 | [讨论]如何 ...

  4. 【Rust日报】 2019-06-16:用 Rust, Haskell, C++, Python, Scala 和 OCaml 实现同一个工程的比较...

    tx-rs - 一个提供 wrtie ahead 的原子交易库 刚出来,仅供了解,这里的"交易"是指业务的原子性,常见于数据库中.与区块链或密码学中的交易,是不同的概念.类似于 S ...

  5. 【Rust 日报】2022-01-09 又一个Rust中文教程《Rust语言圣经》

    12个Rust的Tips 使用 Cow<str> 作为返回类型 使用 Crossbeam channels 取代标准库 使用 Scopeguard 实现类似 Golang 的延迟运算 使用 ...

  6. 【Rust日报】2021-12-14 Lapce: 用Rust编写的闪电般快速且功能强大的代码编辑器

    Lapce: 用Rust编写的闪电般快速且功能强大的代码编辑器 Lightning-fast and Powerful Code Editor written in Rust Lapce完全是用Rus ...

  7. 2020.01.27 再见24号

    昨晚失眠了,也不知道因为失眠,但就是失眠了.早上被初三的炮仗声吵醒,就拿着平板刷头条,满屏都是武汉疫情的新闻,忽的看到莱昂纳德逛夜店的新闻,就点进去看,心想这种新闻也值得发?习惯性的划到底层看评论,见 ...

  8. matlab拟合参数最优,使用matlab最优化方法拟合获得多个动力学参数中的问题 - 计算模拟 - 小木虫 - 学术 科研 互动社区...

    各位师兄师姐,麻烦大家帮我看一下这个问题.我现在想用一个模型来描述我的实验现象,模型如图所示. 我通过实验有了x-t的实验数据,如下图所示,我现在想用matlab的fmincon函数求解模型中的ks和 ...

  9. 【Rust日报】2020-11-03 《Rust日报》总第1000期

    今日头版 <Rust日报>第1000期,感谢有你 两年半的时间,我们一期期走来,到了今天发行的第1000期.回想我第一次看<Rust日报>,还是在Rust 2018刚推出的时候 ...

最新文章

  1. J.U.C系列(五)BlockingQueue的使用
  2. usb 系统消息_4. Autoware 系统框架概揽
  3. centos 6.4 FTP安装和配置
  4. mysql取得列类型_Mysql列类型
  5. asp.net core2.2 多用户验证和授权
  6. bat执行exe程序_dos命令start教程,并行运行exe程序或者启动bat批处理cmd脚本
  7. MSSQLSERVER查询分析器连接的方法
  8. 进程间通信 IPC、LPC、RPC
  9. 使用vue脚手架vue-cli搭建项目
  10. 061 面向过程编程
  11. 人工智能常用的编程语言
  12. 目标检测中PR曲线和mAP
  13. 英飞凌XC2000系列——汽车ECU Bootloader 设计详解
  14. java之家_java之家
  15. linux从零基础开始
  16. #NameError: name ‘x‘ is not defined
  17. 锁定计算机后如何不黑屏,怎么设置电脑黑屏时间_怎么设置电脑不黑屏
  18. 兴趣社区圈子论坛系统搭建教程,教你上线自己的论坛圈子系统。
  19. windows点阵字体转linux版,Deepin 20.1下安装和配置点阵字体,可解决低分屏字体模糊问题...
  20. An end-to-end heterogeneous graph representation learning-based framework for drug–target interactio

热门文章

  1. jca 实例 java_采用jca分析javacore文件示例
  2. 甲骨文公司老板埃里森在耶如大学的…
  3. RSAT(Regulatory Sequence Analysis Tools)详解
  4. Bootstrap登录页面带验证码
  5. android 多开app store,苹果手机如何做到微信双开?
  6. onethink钩子
  7. 华为鸿蒙HarmonyOS 简介
  8. MacBook M1芯片 安装Centos8 教程(无界面安装)
  9. 不要在意FIl短期,FIl未来价值可期
  10. 大数据知识面试题-Flink(2022版)