本文转自 https://blogs.msdn.microsoft.com/visualstudio/2018/11/16/learn-quantum-computing-with-the-quantum-katas/
本文章为机器翻译。
该文章的最新版本已迁移至个人博客【比特飞】,单击链接 https://www.byteflying.com/archives/1039 访问。
我开始学习量子计算当我加入微软量子团队不到两年前。在那之前我得主题是量子力学最早在大学的课程,这是足够长的时间,以前不算。加入后我立刻提出一个全新的“量子计算和量子信息”由Nielsen和Chuang复制。我花了大概一个月要读它,但不可避免地被困在4章的感觉,我没有取得多大的进展。
有几个问题与本书–或者,更可能的是,这种学习模式。首先,书中的练习题没有答案,或者任何的暗示。一旦我解决了一个问题,我不知道我的方法是否正确,如果我被卡住了,我是我自己。幸运的是我有一整个团队的量子计算专家,我可以用我的问题纠缠;最想学习的人自己不量子计算有这样的奢侈。其次,本书从理论的角度来看,很多事情的方法,我不相信你能真正掌握的一种算法–量子或经典–直到你已经实现了它。有一个阅读的解释和公式或甚至以纸笔计算和写代码之间的差异的世界,犯错误和发现他们,看到它是如何在不同的输入等。
当然,你可以(也应该)把其他来源的练习。我非常喜欢量子信息科学课程由麻省理工学院在EDX,因为他们有趣的问题集与验证方案。但我还是觉得应该有比这更教量子计算…
去年冬天,在我们发布的量子开发工具包的零点,我开始思考如何帮助人们学习问#–,这就需要学习量子计算。实例和库代码显示算法的实现或一步一步跟着教程喜欢写一个量子程序显然是不够的,因为他们缺乏做学习方面,让学习者既没有动力也没有在自己的实验框架。
然后我想起fsharpkoans通过我去前一年的学习#当F。这些都是非常好的–有趣和引人入胜的(谁不喜欢修东西吗?)而对于学习语言的语法和概念。我们能问#做这样的事情?
快进几个月:我们自豪地介绍量子实践–开源项目针对量子计算和Q #编程教学。
文章图片
在Visual Studio中的量子实践工作
量子实践遵循的几个关键原则。
通过做来学习
每一型为您提供的编程练习在一个话题或一组密切相关的话题。他们不给你提供理论对这些问题–为他们送你到外部来源,如讲稿或维基百科(你也是最受欢迎的要找到自己喜欢的资源)。一旦你经历了理论,你开始练习你的新获得的知识内化。每一个任务要求你写的代码片段来实现一些你所学到的。
即时反馈
各型包括一个测试框架,验证你的解决方案的任务,只要你写。提供的详细程度不同的话题:如果问题要求你创建一个特定的叠加态,你只知道无论你创造的国家是否正确(如果不是,你可以使用调试工具dumpmachine看看国家创建);如果问题要求你履行量子态区分,你会知道有多少百分比的国家你误判,等等。
增加任务的复杂性
在每个任务开始的简单型和逐渐增加的复杂性,建立在以前的。这个叠加卡塔,例如,从非常简单的任务–创建一个| +〉或| -〉状态–建立创造一个W的状态,这就需要使用递归和一些聪明的旋转或更聪明的选择技巧。
端到端的算法实现
该文章的最新版本已迁移至个人博客【比特飞】,单击链接 https://www.byteflying.com/archives/1039 访问。
如果你想掌握一种经典的算法,你不要单独执行算法–你也写一些单元测试运行和验证您的实现(至少你应该)。同样,量子算法:如果卡塔覆盖Oracle的算法Grover的搜索或协议量子隐形传态,它将带你通过所有的步骤:
- 写一个Oracle的正确格式的算法或准备共享资源的协议,
- 实现该算法本身,
- 把所有的拼在一起运行的算法或协议和检查你得到预期的结果。
【学习实践量子计算与量子】说到贡献…如果你有一个想法,一个新的任务或一个完整的新形,让我们知道我们很乐意帮你实现它!