第七个知识点:随机性如何辅助计算和什么是BPP类问题
第七个知识点:随机性如何辅助计算和什么是BPP类问题
原文地址:http://bristolcrypto.blogspot.com/2014/11/52-things-number-7-how-does-randomness.html
这篇是密码学52件事中第7篇.我们只要把问题集中在BPP复杂类问题.
目前为止,我们已经介绍了一些复杂类:
- P 是一类能在多项式时间内被可确定的图灵机判定的问题.
- NP是一类能在多项式时间内被非确定的图灵机判定的问题.
- BPP是一类在多项式时间内被概率图灵机解出的问题,并且对所有的输入,输出结果有错误的概率在1/3之内.
概率图灵机
概率图灵机 [1] 是一类非确定的图灵机,这种图灵机在每个分支随机的选择,这种选择通过固定的随机分布.这种概率图灵机意味着每次输出的结果是不确定的.对于相同的输入,多次运行概率图灵机,得到的结果可能是接受的,也可能是拒绝的.这种图灵机的定义给出的几类问题的定义.RP,ZPP,和我们这次重要讨论的BPP.
BPP类复杂问题的一些概念
我们已经看到了这个BPP(Bounded-Error probabilistic polynomial time)的定义.注意这个错误概率能是在0到1/2之间的任何值,因为一个被叫做扩增定理(amplification lemma我们不会在这里讨论更多).BPP类问题是包含P类问题的,P类问题是BPP类问题的特例.错误概率为0.现在提出一个问题\(BPP==P\)?现在我们知道的是BPP的问题在逐渐被转换为P类问题.
一个BPP类问题的例子
最著名的BPP类问题但是不是P类问题就是确定一个数字是否是素数 [2] .然而在2002年已经被证明存在一个P类问题的算法了.另一个还没有被转换为P类问题的是polynomial identity testing [3].
关于复杂性类的主题,仍然有许多非常重要的未回答的问题。其中一些问题如果得到解答,将对密码学和计算机科学的未来产生重大影响。
[1] - http://en.wikipedia.org/wiki/Probabilistic_Turing_machine
[2] - http://en.wikipedia.org/wiki/AKS_primality_test
[3] - http://en.wikipedia.org/wiki/Schwartz–Zippel_lemma
第七个知识点:随机性如何辅助计算和什么是BPP类问题的更多相关文章
- WIX 安装部署教程(六) 为你收集的七个知识点
前段时间整理5篇WIX(Windows Installer XML)的安装教程,但还不够完善,这里继续整理了七个知识点分享给大家.WIX最新版本3.8,点击下载 WIX安装部署(一)同MSBuild自 ...
- QuantLib 金融计算——基本组件之 Currency 类
目录 QuantLib 金融计算--基本组件之 Currency 类 概述 构造函数 成员函数 如果未做特别说明,文中的程序都是 python3 代码. QuantLib 金融计算--基本组件之 Cu ...
- QuantLib 金融计算——基本组件之 Date 类
目录 QuantLib 金融计算--基本组件之 Date 类 Date 对象的构造 一些常用的成员函数 一些常用的静态函数 为估值计算配置日期 如果未做特别说明,文中的程序都是 Python3 代码. ...
- QuantLib 金融计算——基本组件之 Calendar 类
目录 QuantLib 金融计算--基本组件之 Calendar 类 Calendar 对象的构造 一些常用的成员函数 自定义假期列表 工作日修正 如果未做特别说明,文中的程序都是 Python3 代 ...
- QuantLib 金融计算——基本组件之 DayCounter 类
目录 QuantLib 金融计算--基本组件之 DayCounter 类 DayCounter 对象的构造 一些常用的成员函数 如果未做特别说明,文中的程序都是 Python3 代码. QuantLi ...
- QuantLib 金融计算——基本组件之 DateGeneration 类
目录 QuantLib 金融计算--基本组件之 DateGeneration 类 QuantLib 金融计算--基本组件之 DateGeneration 类 许多产品的估值依赖于对未来现金流的分析,因 ...
- QuantLib 金融计算——基本组件之 Schedule 类
目录 QuantLib 金融计算--基本组件之 Schedule 类 Schedule 对象的构造 作为"容器"的 Schedule 对象 一些常用的成员函数 如果未做特别说明,文 ...
- QuantLib 金融计算——基本组件之 Index 类
目录 QuantLib 金融计算--基本组件之 Index 类 QuantLib 金融计算--基本组件之 Index 类 Index 类用于表示已知的指数或者收益率,例如 Libor 或 Shibor ...
- QuantLib 金融计算——基本组件之 InterestRate 类
目录 QuantLib 金融计算--基本组件之 InterestRate 类 InterestRate 对象的构造 一些常用的成员函数 如果未做特别说明,文中的程序都是 Python3 代码. Qua ...
随机推荐
- .NET Core基础篇之:集成Swagger文档与自定义Swagger UI
Swagger大家都不陌生,Swagger (OpenAPI) 是一个与编程语言无关的接口规范,用于描述项目中的 REST API.它的出现主要是节约了开发人员编写接口文档的时间,可以根据项目中的注释 ...
- Shell 指定行处理head、tail、sed
目录 Shell 指定行处理 head.tail.sed head 前几行 tail sed 删除.替换.新增.选取 案例 删除行 插入行 查看某行 替换某行 部分数据的查找并替换 读写操作 Shel ...
- java加密方式
加密,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容.大体上分为双向加密和单向加密,而双向加密又分为对称加密和非对称加密(有些 ...
- D3基础入门四-事件处理
6.5.0版 .on("mouseover", function(e,d) e: {"isTrusted":true} 第二个参考才是数据,但这在不同的环境可能 ...
- Output of C++ Program | Set 10
Predict the output of following C++ programs. Question 1 1 #include<iostream> 2 #include<st ...
- Can static functions be virtual in C++?
In C++, a static member function of a class cannot be virtual. For example, below program gives comp ...
- Jenkins检测Maven项目是否引用快照包
目录 一.简介 二.具体 一.简介 生产环境不允许使用快照包,但人为规定终究不如脚本进行检测,所以在打war包,检测是否引用了快照包,如果引用了宣布打包失败 二.具体 1.在pipeline的scri ...
- Linux的编译安装、压缩打包、定时任务
昨日内容回顾 # 1.搭建yum私有仓库 1.安装必须的工具 yum install createrepo yum-utils nginx -y 2.创建目录 mkdir /opt/test 3.创建 ...
- 人工水母搜索算法--JS
1. 人工水母算法原理背景 水母生活在世界上不同深度和温度的水中.它们酷似钟状,一些水母的直径小于1cm,然有些水母直径则非常大.它们有各种各样的颜色.大小和形状.大多数水母偏好海洋环境.它们进食的方 ...
- 【教程】OBS直播推流教程(Windows & macOS)
OBS Open Broadcaster Software | OBS (obsproject.com) Windows直播推流教程 Windows下OBS直播推流非常简单,本教程将会介绍,具体步骤如 ...