Microsoft根据“软件招式”(Code Katas)这一理念,开源了一个称为“Quantum Katas”的项目。该项目意在帮助开发人员迈出使用Q#语言实现量子计算的第一步。它提供了一组复杂度递增的编程练习,并可向学习者提供即刻反馈。

\\

Quantum Katas当前提供四种招式,每种招式涵盖一个特定的量子计算主题:

\\

  • \\t

    如何使用基本的量子计算逻辑门,包括使用单量子位(qubit)门和多量子位门。

    \\t\\t

  • \\t

    准备叠加(Superposition)状态。叠加和纠缠(entanglement)是量子系统独具的特性。叠加允许在某个特定的量子位中同时存在多个逻辑状态。

    \\t\\t

  • \\t

    在量子实验中,使用测量抽取经典信息(classical information)。测量步骤可能会使量子位脱离叠加态,这将会破坏量子系统的相干性。

    \\t\\t

  • \\t

    编写实现经典函数和Deutsch–Jozsa算法的量子预言机(Oracle)。Deutsch–Jozsa算法是一种比确定性经典算法的速度快指数级别的量子算法。

    \\t\

招式组织为一组复杂度递增的编程任务。每个任务使用测试驱动编程(TDD),关联到一个初始未通过的单元测试。在可用的参考资料帮助下,开发人员需要填充其中的代码,使测试得以通过。参考资料和参考解决方案一并提供在招式中。

\\

招式中涵盖的问题来自于Microsoft于去年九月首次推出的Q#编程大赛。

\\

下面给出两个例子。一个是几乎最简单的招式,翻转一个量子位的状态。另一个招式稍为复杂,根据当前状态更改量子位的状态。

\\

\//\    // 第一部分,单量子位逻辑门(Single-Qubit Gates)\    //\    // 任务1.1: 状态翻转:从\"|0\u0026gt;\"翻转为\"|1\u0026gt;\",或是反之。\    // 输入:一个量子位,状态为|ψ\u0026gt; = α|0\u0026gt; + β|1\u0026gt;.\    // 目标:将量子位状态更改为 α|1\u0026gt; + β|0\u0026gt;。\    // 例子: \    //        如果量子位处于状态“|0\u0026gt;”,更改其状态为“|1\u0026gt;”。\    //        如果量子位处于状态“|1\u0026gt;”,更改其状态为“|0\u0026gt;”。\    // 注意:该操作是自伴的(self-adjoint),即再次应用同一操作,量子位将恢复原状态。\    operation StateFlip (q : Qubit) : ()\    {\        body\        {\            // Pauli X门将更改状态“|0\u0026gt;”为状态“|1\u0026gt;”,或是反之。 \            // Type X(q);\            // 然后重新构建项目,并重运行测试。现在,测试T11_StateFlip_Test将会通过~\            // ……\        }\        adjoint self;\    }\    // 任务1.6*:更改相位(Phase change)。\    // 输入:\    //     1. 一个状态为“β|0\u0026gt; + γ|1\u0026gt;”的量子位。 A qubit in state β|0⟩ + γ|1⟩.\    //     2.  以弧度表示的α角度,表示一个Double。\    // 目标:将量子位的状态更改如下:\    //        如果量子位的状态为“|0\u0026gt;”,不更改其状态;\    //        如果量子位的状态为“|1\u0026gt;”,更改其状态为“exp(i*alpha)|1\u0026gt;”;\    //        如果量子位处于叠加态,根据基矢量(basis vectors)的效果更改其状态。\    operation PhaseChange (q : Qubit, alpha : Double) : ()\    {\        body\        {\            // ……\        }\        adjoint auto;\    }

\\

运行Microsoft Quantum Katas需安装Quantum Development Kit开发包。该开发包提供了Windows 10、macOS和Linux上的可用版本。每个招式位于独自的目录中,并关联一个Visual Studio解决方案。在macOS和Linux上,只要安装了.NET Core SDK 2.0或以后的版本,开发人员就可以使用Visual Studio Code或命令行运行各个招式。

\\

查看英文原文: Microsoft Quantum Katas Help Developers Discover Quantum Computing with Q#

Microsoft Quantum Katas帮助开发人员探索使用Q#实现量子计算相关推荐

  1. 从.NET开发人员的角度理解Excel对象模型

    原文:http://www.chinaitpower.com/A/2002-09-05/33997.html 摘要:讨论了 Microsoft Office Excel 2003 提供的一些对象,并且 ...

  2. 从 .NET 开发人员的角度理解 Excel 对象模型--------结合上一篇 vb code excel 单元格锁定...

    从 .NET 开发人员的角度理解 Excel 对象模型 发布日期: 10/27/2004 | 更新日期: 10/27/2004 Ken Getz MCW Technologies, LLC 适用于: ...

  3. 关于amazon亚马逊SP-API申请注册,amazon亚马逊SPAPI开发人员资料注册,amazon亚马逊Selling Partner API申请注册详细指导

    关于amazon亚马逊SPAPI开发人员资料注册,amazon亚马逊开发人员资料申请注册,amazon亚马逊销售合作伙伴 API申请注册,amazon亚马逊SP-API申请注册,amazon亚马逊Se ...

  4. 从 .NET 开发人员的角度理解 Excel 对象模型 (From MSDN)

    从 .NET 开发人员的角度理解 Excel 对象模型 发布日期 : 10/27/2004| 更新日期 : 10/27/2004 Ken Getz MCW Technologies, LLC 适用于: ...

  5. [转]从 .NET 开发人员的角度理解 Excel 对象模型

    http://msdn.microsoft.com/zh-cn/library/aa168292(office.11).aspx#EGAA 简介 对于打算利用用于 Microsoft Office 系 ...

  6. twitch.tv打不开_开发人员真人秀-程序员的Twitch.tv在哪里?

    twitch.tv打不开 Twitch.tv is basically YouTube where you can watch other folks play video games. It ini ...

  7. 中国 Azure 应用程序的开发人员注意事项

    关于本文档 为开发人员提供指南 当前中国服务提供的功能 当前中国服务不提供的功能 在中国服务中创建应用程序时的差异概述 中国数据中心 设置开发计算机 修改中国服务的配置和服务定义文件 使用服务管理 A ...

  8. 初级、中级和高级开发人员的差距在哪里?

    全文共2537字,预计学习时长5分钟 图片来源:Clem Onojeghuo Unsplash 你是初级.中级还是高级开发人员不仅仅由你的编程年龄决定.很多初级开发人员都比高级开发人员年长,归根到底还 ...

  9. 研究人员实现传播微波的量子隐形传态实验;微软扩展Azure量子云服务 | 全球量子科技与工业快讯第五十期

    研究人员实现传播微波的量子隐形传态实验 最近,超导电路在量子计算方面的突破引发了对超导处理器之间需要量子通信信道的需求,并且这些处理器在空间中需以微波长度频率分开.为了实现该目标,Kirill G. ...

最新文章

  1. 最怕的是,你永远也忘不掉 BY顾明烟
  2. 手脱ASProtect v1.23 RC1(无Stolen Code)
  3. 量子计算机理论基础,所谓量子计算机,是指建立在量子力学理论基础上的计算机...
  4. Java学习笔记1(零碎笔记)——基础
  5. Linux的cifs(samba)文件服务
  6. int char转换成string java,java中int,char,string三种类型的相互转换
  7. Android_自适应布局
  8. 接口自动化测试框架搭建(10、运行特定测试case,生成报告发送邮件)--python+HTMLTestRunnerCN+request+unittest+mock+db
  9. svg, ttf, woff, woff2图标的转换
  10. 为什么国外客户愿意把软件交给印度人来做?
  11. 将一个数组中的值按逆序重新存放。例如,原来顺序为8,6,5,4,1。要求改为1,4,5,6,8
  12. XCode下Swift – WebView IOS demo
  13. 95%置信区间的含义_置信度为95%的置信区间什么意思
  14. cordova下使用高德地图js api在4g流量下定位失败问题的解决
  15. 北京15家颜值爆表的餐厅!90%的妹纸来这里都不是为了吃饭
  16. liquibase changelog文件
  17. (算法设计与分析)第二章递归与分治策略-第二节:分治和典型分治问题
  18. android安全漏洞(八)伪造短信(利用原生android4.0漏洞)
  19. 倍数问题(余数的骚操作)
  20. stata 空间杜宾模型_利用STATA创建空间权重矩阵及空间杜宾模型计算命令

热门文章

  1. C++之顺序性容器vector、list、deque的push_back、pop_back、push_front、pop_front、插入(insert)和删除(erase)通用操作及其变形
  2. 《Essential C++》笔记之return;分析
  3. c语言注释和代码互换,c语言项目—注释转换(c——c++)
  4. sap中查询字段长度_SAP会计科目编码的层级说明
  5. php栏目树,php生成无限栏目树的代码实例分享
  6. php布尔类型代码,PHP数据类型之布尔型的介绍
  7. mysql 逆序排序_将一组乱序的字符进行排序进行升序和逆序输出
  8. mysql 113_Centos 下 can't connect mysql server 113
  9. android os苹果手机助手,深度系统V20(1003)内测招募:新增手机助手,支持安卓/iOS端...
  10. flask 自定义错误页面