[复现论文程序图]High Speed Continuous Variable Source-Independent Quantum Random Number Generation
这次的任务是复现该文章的图2(C),过程如下。
①翻译了整篇文章,断断续续,花了3-4天时间。
②阅读文章,并且记录下每个符号的意义,记在单独的1个word文档里。
③开始编程,用的matlab2018b。
clc;clear
%%这个文件,是最终版本,
%% 此版块内,n=,N由1到10,间隔为1,
%%(i+0.5)*deierka)这一行,中的i有问题,已经用平移量解决.
%%
kesai=0.1; %过量噪声
seigema=sqrt(+kesai);
b_lim=*seigema; % a_lim用于后面计算S的过程里,就是区间长度的1半,根据文章来的。
length=; %产生随机数组的次数,即100
for n=:: %外层循环是n的循环,n是零差检测精度
i_min=-^(n-);i_max=^(n-)-;
PingYi=-i_min; %为了把角标变为正数,所用的平移量。比如要把-8到7平移成1到16,那么平移量就是1-(-)=
for N=0.1:0.1: % 内层循环是N的循环,N采样范围
deierka=N/^(n-); m=; %是间隔,m用于计算后面的a_ba
%%这一块在计算P和H
for i=:i_max-i_min+
a(i)=-N+(i-)*deierka; %deierka就是步进间隔
end
for i=:i_max-i_min+
if i==
P(i)=(/)*erfc((N-0.5*deierka)/(sqrt()*seigema));
elseif i>&&i<i_max-i_min+
P(i)=(/)*erf(((i-PingYi+0.5)*deierka)/(sqrt()*seigema))-(/)*erf(((i-PingYi-0.5)*deierka)/(sqrt()*seigema));
elseif i==i_max-i_min+
P(i)=(/)*erfc((N-1.5*deierka)/(sqrt()*seigema));
end
end
index=int8(*N);
H(index)=; R(index)= %清零操作
for i=:i_max-i_min+
diedai=P(i)*log2(P(i))
if P(i)==
diedai=;
end
H(index)=H(index)-diedai;
end
%% 这一块在计算S(a:E)
b_min_buf=; b_max_buf=; b_ba_buf=;
buffer1=; buffer2= % 两个buffer用于计算式子C.3中的两个求和
for k=:length
b=-b_lim+*b_lim*rand(,);
b_min_buf=b_min_buf+min(b); b_max_buf=b_max_buf+max(b);
b_ba_buf=b_ba_buf+mean(b);
end
b_min=b_min_buf/length; b_max=b_max_buf/length;
b_ba=mean(a);
for i=:i_max-i_min %不从1开始。另外,倒数第二个是结尾
if a(i)<=b_ba
buffer1=buffer1+P(i)*(a(i)-b_ba-0.5*deierka)^;
else
buffer2=buffer2+P(i)*(a(i)-b_ba+0.5*deierka)^;
end
end
Vx_ba(index)= P()*(b_min-b_ba)^+P(i_max-i_min+)*(b_max-b_ba)^+buffer1+buffer2;
S(index)=((Vx_ba(index)+)/)*log2((Vx_ba(index)+)/)-((Vx_ba(index)-)/)*log2((Vx_ba(index)-)/);
% 这一块在计算R,
R(index)=H(index)-S(index); end
t=0.1:0.1:;
if n==
plot(t,R,'r*');
end
if n==
plot(t,R,'*');
end
if n==
plot(t,R,'d');
end
if n==
plot(t,R,'p');
end
legend('n=4','n=8','n=12','n=16');
xlim([,]);ylim([,]);
xlabel('Sample range');
ylabel('R_dis(ai:E');
hold on
end
grid
④在码代码的过程中,有以下几个要注意的地方:
(1)图2C的横坐标是从1到10,不是0到10。
(2)文章里的i是可以取负数的,比如n=4时,i就是从-8到7,但是matlab中的数组下标必须是正的,所以在用式子(10)的时候,需要平移,使得i为正数。
(3)matlab在计算A=P*log2(P)这种时,如果P=0,那么A=NaN,正无穷。因此我的代码里在计算P(也就是文章里的H时,我让,if P(i)=0,则迭代量等于0),如果不这么做,那么H会等于正无穷,
这个问题困扰了我很久,解决它之前,当n=8,N=9时,我的H就等于正无穷,而n=8,N=8时,我的H就等于1个有限值。
(4)注意代码里的b_lim到底取几倍的seigema,这个影响挺大的,我最后卡了很久,终于是发现,就是b_lim在影响我的曲线,一调对了b_lim,我的曲线就跟图2C长得差不多了。
⑤ 原文,翻译,术语符号集合,还有程序,我已经上传至百度云。
[复现论文程序图]High Speed Continuous Variable Source-Independent Quantum Random Number Generation的更多相关文章
- 【转帖】远程显示(操作) 服务器 GUI 程序(图形化界面) (基于 X11 Forwarding + Centos + MobaXterm)
远程显示(操作) 服务器 GUI 程序(图形化界面) (基于 X11 Forwarding + Centos + MobaXterm) https://zhuanlan.zhihu.com/p/310 ...
- Variable|quantitative variables|continuous variable|discrete variable|qualitative variables| observation|data set
2.1Variables and Data Variable:某物或某人的某一特征和其他个体不同. quantitative variables:定量变量either discrete (可以被数)o ...
- 论文解读(MPNN)Neural Message Passing for Quantum Chemistry
论文标题:DEEP GRAPH INFOMAX 论文方向: 论文来源:ICML 2017 论文链接:https://arxiv.org/abs/1704.01212 论文代码: 1 介绍 本文的目标 ...
- 论文结果图:matplotlib和seaborn实现
在论文中,可视化结果往往很重要,毕竟文字太抽象,需要图片向审稿人直观的展现出我们的结果.我也写了俩篇论文和一篇专利的申请,其中也有一些画图的程序,因此记录,防止以后忘了.由于篇幅原因,文章就不贴代码, ...
- word论文之图和表目录制作
https://jingyan.baidu.com/article/91f5db1b3c539f1c7e05e341.html?qq-pf-to=pcqq.c2c 1.目标: (1)图目录. (2)表 ...
- 远程显示(操作) 服务器 GUI 程序(图形化界面) (基于 X11 Forwarding + Centos + MobaXterm)
在做 数据分析(数据挖掘 或 机器学习)的时候,我们经常需要绘制一些统计相关的图表,这些统计.绘图的程序常常是跑在服务器上的,可是服务器出于性能和效率的考虑,通常都是没有安装图形化界面的,于是这些统计 ...
- 论文笔记之:Speed Up Tracking by Ignoring Features
Speed Up Tracking by Ignoring Features CVPR 2014 Abstract:本文提出一种特征选择的算法,来实现用最"精简"的特征以进行目标跟 ...
- Matlab调用遗传工具箱复现论文模型求解部分
原文转载自:https://blog.csdn.net/robert_chen1988/article/details/52431594 论文来源: https://www.sciencedirect ...
- sql server2016安装程序图
今天终于有时间安装SQL Server2016正式版,下载那个安装包都用了一个星期 安装包可以从这里下载: http://www.itellyou.cn/ https://msdn.microsoft ...
随机推荐
- pdfminer API介绍:pdf网页爬虫
安装 pip install pdfminer 爬取数据是数据分析项目的第一个阶段,有的加密成pdf格式的文件,下载后需要解析,使用pdfminer工具. 先介绍一下什么是pdfminer 下面是官方 ...
- PHP current
1.函数的作用:返回数组的当前元素 2.函数的参数: @params array &$array 3.例子: <?php $arr = [null,'PK',false]; : ; ec ...
- docker1-centos上安装docker
docker镜像(image)相当于面向对象的类 docker容器(container)相当于面向对象的对象 1.安装环境要求 目前,CentOS 仅发行版本中的内核支持 Docker. Docker ...
- webpack中如何使用图标字体
1.webpack安装相关依赖 $ npm install font-awesome-webpack less less-loader css-loader style-loader file-loa ...
- Linux下安装db2V9.7
vi /etc/hosts(127.0.0.1 localhost192.168.1.53 linux-wmv8) vi /etc/services db2inst1 50000/tcp(加在最后) ...
- MySQL:数据库基本认识
1.什么是数据库 通俗来讲,数据库就是用于存储数据的仓库.很多人可能会问,存储数据用文件不就行了吗?为什么还要弄数据库? 文件存储数据具有以下几个缺点: 文件的安全性问题 文件不利于查询和数据库管理 ...
- 前端技术之:使用webpack构建React程序配置方法
package.json中需要引入以下依赖: 开发依赖: "@babel/core": "^7.1.2", "@babel/preset-env& ...
- 转:XSS和CSRF原理及防范
原文地址:http://www.freebuf.com/articles/web/39234.html 随着Web2.0.社交网络.微博等等一系列新型的互联网产品的诞生,基于Web环境的互联网应用越来 ...
- pymssql默认关闭自动模式开启事务行为浅析
使用Python采集SQL Server数据库服务器磁盘信息时,遇到了一个错误"CONFIG statement cannot be used inside a user transacti ...
- 爬取bing背景图片
因为工作环境的原因,没办法用梯子,也不喜欢用某度,只能用bing,发现背景图片蛮好看的,刚好最近在学习摄影,需要提高审美,就想着把bing背景图片都爬去下来做桌面背景.写的代码比较入门,只是做个记录, ...