一种基于区间编码的高效随机数生成方法技术

技术编号:24010054 阅读:60 留言:0更新日期:2020-05-02 01:26
本发明专利技术公开了一种基于区间编码的高效随机数生成方法,包括:步骤1:整数权重比值表示;步骤2:随机数扩展;步骤3:区间编码构造;步骤4:基于区间编码随机数转化;步骤5:随机数生成;本发明专利技术通过可选择性地添加一个适当权重的无效符号,有效保证符号权重的准确性,同时结合区间编码解码转化,生成不同权重的符号消耗不同长度的二元无偏随机数。本方法产生的加权随机数序列既符合权重要求,也提高了生成效率。由于区间编码是可以达到信息论理论极限的熵编码,本方法的随机数生成效率完全由扩展符号概率分布的信息熵决定,在不添加无效字符时可以达到或接近信息论的理论极限。

An efficient random number generation method based on interval coding

【技术实现步骤摘要】
一种基于区间编码的高效随机数生成方法
本专利技术涉及加权随机数生成
,具体涉及一种基于区间编码的高效随机数生成方法。
技术介绍
随机数发生器在信息安全、电子商务、通讯、实验仿真、游戏设计等众多领域具有广泛的应用。而且随着技术的发展,对随机数的类型、质量、效率等都提出了更高的要求。目前随机数发生器绝大部分都是用来产生二元无偏随机数序列,而实际应用中往往需要产生任意给定权重或任意范围的随机数。通常的做法是基于整数区间的划分。将一个大的区间按照符号的权重或概率划分为小区间,然后由二元无偏随机数发生器产生2的方次范围的数,根据该数所在的小区间来转化为对应的随机数。其主要存在以下两个方面的问题,第一:生成每位加权随机数采用了固定长度的二元无偏随机数,从信息论的角度,不同权重的符号包含不同的信息量,采用固定长度的二元无偏随机数至少按照其中最大信息量来消耗,造成了生成效率上的浪费;第二:所有符号的权重之和往往并不是2的方次,甚至并不是整数,而二元无偏随机数发生器产生的随机数范围为2的方次,要么舍弃超过的部分而损失效率,要么对每个符号的权重进行缩放取整形成近似权重而影响随机数的质量。在部分应用场景下,这些问题会导致传统的随机数发生器无法满足要求。
技术实现思路
本专利技术所要解决的技术问题是针对上述现有技术的不足提供一种基于区间编码的高效随机数生成方法,本基于区间编码的高效随机数生成方法通过可选择性地添加一个适当权重的无效符号,有效保证符号权重的准确性,同时结合区间编码解码转化,生成不同权重的符号消耗不同长度的二元无偏随机数;本方法产生的加权随机数序列既符合权重要求,也提高了生成效率。为实现上述技术目的,本专利技术采取的技术方案为:一种基于区间编码的高效随机数生成方法,包括以下步骤:步骤1:整数权重比值表示:若需要产生的随机数包含有效符号S={S1,S2,…,St},其中t(t≥2)是有效符号个数,对应的概率分布为P={p1,p2,…,pt};将比值p1:p2:…:pt表示为最简整数权重比值W={w1:w2:…:wt},其中wi(i=1,2,…,t)均为正整数,且最大公约数gcd(w1,w2,…,wt)=1;步骤2:随机数扩展:对整数权重比值W求和wS=w1+w2+…+wt,计算概率分布精度d,d为满足2d-1<wS≤2d的正整数;若wS=2d,则无需添加无效符号,直接转跳到步骤3;若wS<2d,可以选择不添加无效字符,直接转跳到步骤3,也可以选择添加一个无效符号St+1,对应的整数权重为wt+1=2d-wS;此时随机数扩展为t+1个符号S′={S1,S2,…,St,St+1},称为扩展符号,扩展符号总权重为w′S=w1+w2+…+wt+wt+1,对应的扩展符号概率分布为扩展符号整数权重比值为W′={w1:w2:…:wt:wt+1};扩展符号的信息熵H(S′)按照定义为:为统一表示也将不添加无效字符的情况等同于添加一个无效符号St+1,其权重wt+1为0;步骤3:区间编码构造:假设扩展符号S′={S1,S2,…,St,St+1}按照当前顺序排序,计算累计概率为cp′i=p′1+p′2+…+p′i,0≤i≤t+1;其中累计概率cp′0=0,cp′t+1=1;对任何一个扩展符号Si,1≤i≤t+1,其对应的半开半闭子区间为[cp′i-1,cp′i),区间长度为cp′i-cp′i-1=p′i;区间编码将按照上述符号与子区间的对应进行编码或解码;将这种编码方式记为RC;步骤4:基于区间编码随机数转化:使用二元无偏随机数发生器产生0/1二元随机数序列B=B(1)B(2)B(3)B(4)…,B(i)∈{0,1},按照构造的区间编码RC进行解码得到扩展随机数序列X′=S′(1)S′(2)S′(3)S′(4)…,S′(i)∈S′;步骤5:随机数生成:将得到的扩展随机数序列X′=S′(1)S′(2)S′(3)S′(4)…,S′(i)∈S′,舍弃添加的无效符号St+1,得到最终的加权随机数序列X=S(1)S(2)S(3)S(4)…,S(i)∈S并输出。作为本专利技术进一步改进的技术方案,所述步骤4中的按照构造的区间编码RC进行解码的步骤包括:(4.1)、区间解码初始化:固定取正规化位宽为s,区间编码位宽为k;初始化区间下限L=0,区间大小为R=2k,码C为待解码二元无偏序列的前k位;(4.2)、迭代解码:计算区间大小与所有累计概率的乘积,将区间[L,L+R)划分为t+1个子区间[L,L+R*cp′1)、[L+R*cp′1,L+R*cp′2)、…、[L+R*cp′t,L+R),其中所有子区间均是半开半闭;待解码C属于且仅属于其中的一个子区间;若C∈[L+R*cp′i-1,L+R*cp′i);则输出的扩展符号为Si,并更新下一轮迭代的区间下限为L←L+R*cp′i-1、区间大小R←R*p′i;(4.3)、正规化操作:若新的区间大小R满足R<2k-s,即高s位全为0时,需要进行正规化操作;正规化操作包括更新区间下限L←(L<<s)mod2k,区间大小R←(R<<s),待解码C←(C<<s)mod2k,并从输入二元无偏随机数序列重新装载s比特到C的低s位;其中<<s表示向左移动s个比特;mod2k表示对整数取模2k运算,也即保留该整数的低k位比特;若新的区间大小R不满足R<2k-s,则无需进行正规化操作;若解码并未结束,则重新返回步骤4.2进行迭代解码。本专利技术的有益效果为:(1)本专利技术通过可选择性地添加一个适当权重的无效符号,有效保证符号权重的准确性,同时结合区间编码解码转化,生成不同权重的符号消耗不同长度的二元无偏随机数。本方法产生的加权随机数序列既符合权重要求,也提高了生成效率。由于区间编码是可以达到信息论理论极限的熵编码,本方法的随机数生成效率完全由扩展符号概率分布的信息熵决定,在不添加无效字符时可以达到或接近信息论的理论极限。一般情况下可以通过提高区间编码的位宽来获得更接近信息论理论极限的生成效率。(2)本专利技术提供一种基于区间编码的高效随机数生成方法,通过建立合适的区间编码,将二元无偏随机数序列解码转化为加权随机数序列,满足了特定场合下对加权随机数的需求。(3)本专利技术对所有有效符号的整数权重之和非2的方次的情况,添加适当权重的非有效字符,使得最终产生的随机数严格满足其权重比值。同传统近似比值的方法,本专利技术为工程应用保证了加权随机数的质量。(4)本专利技术在保证其权重比值的基础上,使用了区间编码对二元无偏随机数序列进行解码转化。其转化效率高,达到了信息论的理论极限。为加权随机数的应用提供效率上的优势。附图说明图1本专利技术的系统流程图。图2区间解码流程图。图3基于区间编码的加权随机数生成方法实例演示图。具体实施方式下面根据图1至图3对本专利技术的具体实施方式作出进一步说明:本实施例提供的一种基于区间编码的高效随机本文档来自技高网...

【技术保护点】
1.一种基于区间编码的高效随机数生成方法,其特征在于:包括以下步骤:/n步骤1:整数权重比值表示:若需要产生的随机数包含有效符号S={S

【技术特征摘要】
1.一种基于区间编码的高效随机数生成方法,其特征在于:包括以下步骤:
步骤1:整数权重比值表示:若需要产生的随机数包含有效符号S={S1,S2,...,St},其中t(t≥2)是有效符号个数,对应的概率分布为P={p1,p2,...,pt};将比值p1∶p2∶...∶pt表示为最简整数权重比值W={w1∶w2∶...∶wt},其中wi(i=1,2,...,t)均为正整数,且最大公约数gcd(w1,w2,...,wt)=1;
步骤2:随机数扩展:对整数权重比值W求和ws=w1+w2+…+wt,计算概率分布精度d,d为满足2d-1<ws≤2d的正整数;
若ws=2d,则无需添加无效符号,直接转跳到步骤3;
若ws<2d,选择不添加无效字符,直接转跳到步骤3,或者选择添加一个无效符号St+1,对应的整数权重为wt+1=2d-wS;此时随机数扩展为t+1个符号S′={S1,S2,...,St,St+1},称为扩展符号,扩展符号总权重为w′S=w1+w2+…+wt+wt+1,对应的扩展符号概率分布为扩展符号整数权重比值为W′={w1∶w2∶...∶wt∶wt+1};扩展符号的信息熵H(S′)按照定义为:



为统一表示也将不添加无效字符的情况等同于添加一个无效符号St+1,其权重wt+1为0;
步骤3:区间编码构造:假设扩展符号S′={S1,S2,...,St,St+1}按照当前顺序排序,计算累计概率为cp′i=p′1+p′2+…+p′i,0≤i≤t+1;其中累计概率cp′0=0,cp′t+1=1;对任何一个扩展符号Si,1≤i≤t+1,其对应的半开半闭子区间为[cp′i-1,cp′i),区间长度为cp′i-cp′i-1=p′i;区间编码将按照上述符号与子区间的对应进行编码或解码;将这种编码方式记为RC;
步骤4:基于区间编码随机数转化:使用二元无偏随机数发生器产生0/1二元...

【专利技术属性】
技术研发人员:凌杰刘云苗春华刘婧婧尹凯
申请(专利权)人:安徽问天量子科技股份有限公司
类型:发明
国别省市:安徽;34

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1