量子算命,在线掷筊:一个IBM量子云计算机的应用实践,代码都有了
整理 | Jane
出品| AI科技大本营(ID:rgznai100)
“算命”,古今中外,亘古不衰的一门学问,哪怕到了今天,大家对算命占卜都抱着一些”敬畏“的信任心理,西方流行塔罗牌,国内有掷筊(jiǎo)等“卜卦”之术,国内尤以古老的文献之一《易经》为大家熟知。
《易经》最初用于占卜和预报天气,以一套符号系统来描述状态的简易、变易、不易,中心思想是以演译自然运行的内在特征与规律,解读阴阳的交替变化描述世间万物,也可以用一个数学知识来解释:我们计算分析,归纳总结的是随机现象。
一种传统的问卜仪式:掷筊
不过,时代变了,当代占卜大师或许也要考虑饭碗被计算机替代的问题了。
现在,日本一位华人工程师在其个人网站和Github主页上上线了两个新项目:《量子算命,在线掷筊:IBM 量子云计算机使用入门》、《量子算命:爻 System》,希望通过量子力学让你足不出户,和神明通个电话。
前有“AI面相学”,今有“量子神明”出世了,没准两者合计一下兴许可以找风投要钱办公司打开新(圈)市(钱)场了?
“量子神明”的诞生
项目作者在《量子算命,在线掷筊:IBM 量子云计算机使用入门》中表示:如果我们今天对量子力学的认识是正确的,那么随机性应该是量子物理的内禀性质,所以我们在邀请真正的上帝来为我们掷骰子,能真正表达量子神明的意愿。
基于此,他提出一个利用量子力学现象进行随机数的发生的方法,并且已经采用 IBM 的量子云计算机 IBM Q 实现了。利用 IBM 提供的量子程序开发的 SDK,在设计调试完成后,交给线上真正的云量子计算机进行运算。
万万没想到,这款量子计算应用真的就这样诞生了?
原理是什么?
在第一个项目中,他以「掷筊」为例,为大家从方法假设到代码实现一一解释。
掷筊是一种道教与民间信仰中问卜的仪式;又称掷筶、掷杯、博杯,普遍流传于华人民间传统社会。“筊杯”是一种占卜工具,是世俗之人所用以与神明指示的工具。下列是阳阴组合的说明:
(1)一阳一阴(一平一凸):称之为“圣筊”、“允筊”(筊或作“杯”)表示神明允许、同意,或行事会顺利。但如祈求之事相当慎重,多以连续三次圣杯才算数。
(2)两阳面(两平面):称之为“笑筊”(筊或作“杯”),表示神明一笑、不解,或者考虑中,行事状况不明,可以重新再掷筊请示神明,或再次说清楚自己的祈求。
(3)两阴面(两凸面):称之为“阴筊”、“无筊”、“怒筊”(筊或作“杯”),表示神明否定、愤怒,或者不宜行事,可以重新再掷筊请示。(解释来源:维基百科)
作者是这样假设与设计的: 提出的方法:
基于 IBM 提供的量子程序开发的 SDK,部分代码:
github在这里:
https://github.com/dsh0416/quantum-i-ching/blob/master/poe.ipynb
上面「掷筊」的例子中,情况没有那么复杂,相对容易理解与实现。随后,作者还进行了第二个项目《基于量子计算的爻系统》的设计与开发,这个项目是基于《易经》的六爻占卜设计的:
《易经》八卦中有两个符号,一个是“⚊”,另一个是“⚋”。在《易经》中并没有“阴阳”二字,数百年后的《易传》才把“⚊”叫阳爻,把“⚋”叫阴爻。八卦是以阴阳符号反映客观现象。
六爻,既可以指从下向上排列的六个阴阳符号的组合,也泛指借用这种组合进行预测的方法。六爻预测,包括纳甲法和梅花易数两种不同方法,纳甲将六个爻结合天干地支五行六亲世应及神煞等众多因素来预测,而梅花易数比较简便,主要依据内外卦、体用卦、互变卦及爻辞等来预测。(解释来源:维基百科)
在这个设计中,明显计算复杂了很多,需要 64 个经典态,即需要 6 个量子,但 6 个量子的量子芯片目前仍十分稀有。作者表示:“由于在他们设计的占卜过程中不需要产生任何纠缠态,只需要 H 门这一种量子门,可以针对这一市场需求设计并行的单量子芯片,从而让量子计算走入千家万户“。
上代码,看看怎么算卦的:
https://github.com/dsh0416/quantum-i-ching/blob/master/notebook.ipynb
这几年,深度学习算法在计算机视觉图像识别领域不断取得突破,随之产生了不少新鲜应用,“AI识面”这一类项目引发了大家的关注与讨论。这一类应用基本都属于算命中的面相学,这样通过用户的照片,结合“大师点评”,让看面相这件事不仅具有历史底蕴,还有了科学解释性,不过依然是专收“智商税”的。此前,AI科技大本营此前报道过此类小程序。
现在,这类收“智商税”的算卦应用,有了更时尚的装饰名词:量子神明。
作者还说了,“建议大家以后问鬼神的时候可以多用量子神明的力量,可能会比较凖(编者注: 同'准')吧。”
会准吗?无论如何,这个项目的 Slogan 是有了:真 · “遇事不决,量子力学”。
(*本文为AI科技大本营整理文章,转载请微信联系1092722531)
精彩推荐
开幕倒计时9天|2019 中国大数据技术大会(BDTC)即将震撼来袭!豪华主席阵容及百位技术专家齐聚,十余场精选专题技术和行业论坛,超强干货+技术剖析+行业实践立体解读。6.6 折票限时特惠(立减1400元),学生票仅 599 元!
相关文章:

rails应用ajax之二:使用rails自身支持
考虑另一种情况: 1. 页面上半部分显示当前的所有用户,页面下半部分是输入新用户的界面; 2. 每当输入新用户时,页面上半部分会动态更新新加用户的内容; 我们还是用ajax实现,不过这次用rails内部对ajax的支持…

C++11中std::async的使用
C11中的std::async是个模板函数。std::async异步调用函数,在某个时候以Args作为参数(可变长参数)调用Fn,无需等待Fn执行完成就可返回,返回结果是个std::future对象。Fn返回的值可通过std::future对象的get成员函数获取。一旦完成Fn的执行&…
BAT数据披露:缺人!110万AI人才缺口,两者矛盾,凉凉了!
人工智能到底有多火?近日国内首份《BAT人工智能领域人才发展报告》新鲜出炉,此次报告是针对国内人工智能领域的人才争夺情况进行了梳理。并把研究对象锁定在BAT三大巨头的身上。来源:《BAT人工智能领域人才发展报告》其中得出最为核心的结论&…

swift3.0最新拨打电话方法
let alertVC : UIAlertController UIAlertController.init(title: "是否拨打报警电话:10086", message: "", preferredStyle: .alert) let falseAA : UIAlertAction UIAlertAction.init(title: "取消", style: .cancel, handler: nil) let tr…

关于手机已处理里重复单据的处理办法
更新视图 VWFE_TASK去掉 union TWFE_TASK_BAK 的部分,原因是因为后面做了流程预演导致的问题转载于:https://blog.51cto.com/iderun/1602828

swiftswift3.0自己封装的快速构建页面的方法
//#param mark 控件 func creatLabel(frame:CGRect,text:String,textColor:UIColor,textFont:CGFloat,textAlignment:NSTextAlignment) -> UILabel { let label UILabel.init(frame: frame) label.text text label.textColor textColor label.font UIFont.systemFont(of…
Google是如何做Code Review的?| CSDN原力计划
作者 | 帅昕 xindoo 编辑 | 屠敏出品 | CSDN 博客我和几个小伙伴一起翻译了Google前一段时间放出来的Google’s Engineering Practices documentation(https://github.com/google/eng-practices),翻译后的GitHub仓库:https://gith…

从FFmpeg 4. 2源码中提取dshow mjpeg code步骤
之前在https://blog.csdn.net/fengbingchun/article/details/103735560 中介绍过在Windows上通过vs2017编译FFmpeg源码进行单步调试的步骤,为了进一步熟悉FFmpeg这里以提取FFmpeg dshow mjpeg源码为例介绍其实现过程及注意事项: FFmpeg是用C实现的&…

ControlButton按钮事件
#ifndef __HControlButton_H__#define __HControlButton_H__#include "cocos2d.h"#include "cocos-ext.h"USING_NS_CC;USING_NS_CC_EXT; //用于标识当前按钮的状态typedef enum{ touch_begin, touch_down, touch_up,}tagForTouch;class HControlB…

swift3.0UIAlertController使用方法
let alertVC : UIAlertController UIAlertController.init(title: "添加照片", message: "", preferredStyle: .actionSheet) let cleanAction UIAlertAction(title: "取消", style: UIAlertActionStyle.cancel,handler:nil) let photoActi…

Doxygen使用介绍
Doxygen的主页为http://doxygen.nl/,它的license为GPL,最新发布版本为1.8.17,源代码存放在https://github.com/doxygen/doxygen,它支持的语言包括C、C、Objective-C、C#、Java、Python等,它支持的系统平台包括Winodws、…
云计算软件生态圈:摸到一把大牌
作者 | 老姜编辑 | 阿秃出品 | CSDN云计算(ID:CSDNcloud)“我觉得我摸着了一把大牌。”软件领域的新锐企业——有赞公司创始人兼CEO白鸦在转向SaaS领域的一个细分市场时,曾对天使投资人这样说。而老牌软件企业金蝶创始人徐少春在2…

iOS封装HTTPS双向和单向验证
1.HttpsUtil (1) 对双向和单向验证的封装 #import <Foundation/Foundation.h> #import "AFNetworking.h" interface HttpsUtil : NSObject // 双向认证 (void)configHTTPSessionManager:(AFHTTPSessionManager *)manager serverCers:(NSArray *) serverCerNam…

开源库BearSSL介绍及使用
BearSSL是用C语言实现的SSL/TLS协议,它的源码可直接通过git clone https://www.bearssl.org/git/BearSSL 下载,它的license是MIT,最新版本为0.6。 BearSSL的主要特性是: (1). 正确且安全:对不安全的协议版本和算法选…
个推CTO安森:我所理解的数据中台
作者 | 个推CTO安森来源 | 个推技术学院(ID:ID: getuitech)引言在前面两篇文章(《数据智能时代来临:本质及技术体系要求》和《多维度分析系统的选型方法》)之中,我们概括性地阐述了对于数据智能的理解&…

玩弹珠手游-杂想
前言 为什么会写这个杂想呢? 因为最近这一个月来,我有点太沉迷怪物弹珠这个游戏了,每天下班回来的时间和上下班路途都在玩这个游戏,占据了我大部分的业余时间,也该是时候放一放玩游戏了。 为什么会玩这个游戏呢&#x…

OC封装时间选择器
#import <UIKit/UIKit.h> protocol TimeDatePickerViewDelegate <NSObject> //必须实现的两个协议 required - (void)changeTime : (NSDate *)date;//当时改变时出发 - (void)daterMine : (NSDate *)date;//更确定时间 end interface TimeDatePickerView :UIView /…
银行卡大小的充电宝,买就送耳机!
每个人的朋友圈和微博上似乎都有那么几个活得让人羡慕的朋友他们的生活看起来不仅精致,还很丰富多彩从早上第一刻就开始了↓出门旅游新一天的穿搭逆天朋友团咖啡馆到书店逼格十足的日料夜景太迷人忍不住发个小视频最后一定不要错过傍晚的夕阳,真的好上镜…

C++中插件使用举例
插件并不是在构建时链接的,而是在运行时发现并加载的。因此,用户可以利用你定义好的插件API来编写自己的插件。这样他们就能以指定方式扩展API的功能。插件库是一个动态库,它可以独立于核心API编译,在运行时根据需要显示加载。不过…

C和C++安全编码笔记:指针诡计
指针诡计(pointer subterfuge)是通过修改指针值来利用程序漏洞的方法的统称。 可以通过覆盖函数指针将程序的控制权转移到攻击者提供的外壳代码(shellcode)。当程序通过函数指针执行一个函数调用时,攻击者提供的代码将会取代原本希望执行的代码而得到执行。 对象指…
runLoop和runtime的分析
一.RunLoop: Runloop是事件接收和分发机制的一个实现。 Runloop提供了一种异步执行代码的机制,不能并行执行任务。 在主队列中,Main RunLoop直接配合任务的执行,负责处理UI事件、定时器以及其他内核相关事件。 (1).RunLoop的主要目的&#…
脑出血遇到深度学习,是否可以无所遁形?
近期大家对身体健康这个话题格外关注,而我们今天公开课的主题也恰巧与此不谋而合。我国脑卒的发病率已经超过心血管疾病,成为致死、致残率最高的疾病,并且发病率呈逐年上升的趋势,此外脑血管病和颅内肿瘤等脑部疾病也危害人们的健…

Cloudera Manager 5.3 和 CDH5.3.0 本地(离线)
为什么80%的码农都做不了架构师?>>> 声明一下:http://my.oschina.net/dataRunner/blog/369129 是本人所写,并非抄袭。 有部分内容来自 http://www.wangyongkui.com/hadoop-cdh5/ 这个文件是根据官网操作,翻译的不…
万字长文详解如何用Python玩转OpenGL | CSDN 博文精选
作者 | 天元浪子来源 | CSDN博文精选【编者按】OpenGL(开放式图形库),用于渲染 2D、3D 矢量图形的跨语言、跨平台的应用程序编程接口,C、C、Python、Java等语言都能支持 OpenGL。本文作者以 Python 语法为例,用两万字详…

模仿视频抓帧实现
路口或某些场所可能并不会把从摄像头获取到的视频全部存储下来或对所有的视频帧进行处理,即摄像设备是一直处于打开状态,可能会根据需要间隔性的抓取其中一帧,或当某事件触发时才会抓取当前的一帧数据进行处理。这里使用两个线程来模仿此场景…

iOS--MD5加密封装
#import <Foundation/Foundation.h> interface MD5 : NSObject /** * md5加密 * * param inPutText 需要加密的字符串 * * return 加密好的字符串 */ (NSString *)md5:(NSString *)inPutText; end #import "MD5.h" #import "CommonCrypto/CommonDiges…

Akka路由_RoundRobinRoutingLogic
2019独角兽企业重金招聘Python工程师标准>>> Akka路由_RoundRobinRoutingLogic 使用Round Robin算法的Router,代码中有注释,基本和上篇文章中的代码一样 http://my.oschina.net/xinxingegeya/blog/369721, 具体如下,关…

iOS ---网络请求封装(自动缓存与手动缓存)
#import <Foundation/Foundation.h> interface WNetworkCache : NSObject /** * 手动写入/更新缓存 * * param jsonResponse 要写入的数据 * param URL 请求URL * * return 是否写入成功 */ (BOOL)saveJsonResponseToCacheFile:(id)jsonResponse andURL:(NSStrin…

Windows下获取视频设备的一种改进实现
之前在https://blog.csdn.net/fengbingchun/article/details/102806822中介绍过在Windows下获取视频设备列表的方法。其实那种实现方法是有缺陷的,当PC机上连接多个视频设备,并且其中有设备处于启动运行状态时,再调用相关接口获取视频设备可能…