[复现论文程序图]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 ...
随机推荐
- Spring Security 入门(一)
当你看到这篇文章时,我猜你肯定是碰到令人苦恼的问题了,我希望本文能让你有所收获. 本人几个月前还是 Spring 小白,几个月走来,看了 Spring,Spring boot,到这次的 Spring ...
- Linux下yum与apt-get
linux系统基本上分两大类: 1.RedHat系列:Redhat.Centos.Fedora等 2.Debian系列:Debian.Ubuntu等 RedHat 系列 1 常见的安装包格式 rpm包 ...
- 记因git规范导致的提测和发布延迟
号外 最近因为换工作的原因,我的博客和Github没有像之前那样频繁的更新了.一方面原因是投递简历和准备面试,由于之前的基础没有很扎实,需要把平时的知识点都整理一遍.这个时间段持续了20多天的样子,因 ...
- Mysql面试题及千万级数据查询优化
今天在说Mysql查询优化之前,我先说一个常见的面试题,并带着问题深入探讨研究.这样会让大家有更深入的理解. 一,Mysql数据库中一个表里有一千多万条数据,怎么快速的查出第900万条后的100条数据 ...
- APP打包设置程序版本号
正确设置方式是: 注意,以下修改不会起作用<manifestxmlns:android="http://schemas.android.com/apk/res/android" ...
- UIScrollView的contentView 助于理解
- Pycharm 专业版激活码(转) 有效期到2020/06月
亲测有效!!! 有效期截止为2020年06月,多谢大家支持与讨论! K6IXATEF43-eyJsaWNlbnNlSWQiOiJLNklYQVRFRjQzIiwibGljZW5zZWVOYW1lIjo ...
- QHDYZ模拟赛20191012
今天信息处老师(并不是教练,基本等于机房看门大爷) (好吧老师其实很犇,软件什么的厉害的一批,只是不能带oi--) 跟我说:"xxj,过两天月考完了,可以在初赛前再整一次模拟赛,一天,三道题 ...
- CSPS_106
这场 死的太惨了! 我也不把我的错误像倒垃圾一样放在blog里了qwq 通过这场考试 我深深地认识到了情绪对人类的影响qwq 只要这种东西,不要出现在我的csp中就好了 T1 区间DP.. T2 枚举 ...
- CSPS模拟 50
收获很多,良心出题人 T1 施工 研究半天,最后30分暴力走人 考后看了题解,稍神仙这题弃对了...... 要拿30+,必须发现要填的话一定是填一个坑使它底部变平,最终底部高度小于等于两边 为什么是坑 ...