随机数生成方法、装置和设备制造方法及图纸

技术编号:28558020 阅读:18 留言:0更新日期:2021-05-25 17:52
本申请实施例提供一种随机数生成方法、装置和设备,所述方法包括:响应于随机数生成指令,生成随机数;所述生成随机数包括:获取当前时刻,根据所述当前时刻,确定出基数;从所述基数中选取得到数字序列,基于所述数字序列确定随机数,其中,所述数字序列在所述基数中的位置与随机数的生成次数之间具有映射关系。

【技术实现步骤摘要】
随机数生成方法、装置和设备
本申请涉及随机数生成
,特别涉及一种随机数生成方法、装置和设备。
技术介绍
在半自动粉面机等电子设备与上位机通信过程中,为确保通信唯一性和准确性,例如,要求通信报文中包含长度为2个字节的16进制的随机数(或伪随机数)等。目前,在可编程逻辑控制器(PLC)中,并没有生成随机数的指令或功能。如图1P所示,现有的随机数生成方法,在PLC内嵌的C语言环境下运行rand()函数,利用C语言中的rand()函数生成一个位于0~RAND_MAX(RAND_MAX大于等于32767)之间的整数,以该整数作为基准,生成随机数。然而,当PLC开机后,现有的随机数生成方法经多次运算生成的随机数会逐渐相同,无法确保通信唯一性和准确性。
技术实现思路
本申请提供了一种随机数生成方法、装置和设备,能够避免多次生成的随机数逐渐相同的情况发生,有利于确保通信唯一性和准确性。第一方面,本申请提供了一种随机数生成方法,包括:响应于随机数生成指令,生成随机数;所述生成随机数包括:获取当前时刻,根据所述当前时刻,确定出基数;从所述基数中选取得到数字序列,基于所述数字序列确定随机数,其中,所述数字序列在所述基数中的位置与随机数的生成次数之间具有映射关系。其中一种可能的实现方式中,所述从所述基数中选取得到数字序列,包括:按照第一位置以及当前随机数的生成次数,确定出第二位置,其中,所述第一位置指的是在前n次生成随机数的过程中,第一数字序列在第一基数中的位置;从第二基数中的第二位置上选取得到第二数字序列。其中一种可能的实现方式中,所述第一位置包括第一序列开始选取位置,所述方法还包括:在所述前n次生成随机数的过程中,从第一基数中的第一序列开始选取位置开始,沿预设选取方向,选取得到预设第一长度的第一数字序列。其中一种可能的实现方式中,所述第二位置包括第二序列开始选取位置,所述按照第一位置以及当前随机数的生成次数,确定出第二位置,包括:以预设第二长度为移动步长,将所述第一序列开始选取位置沿预设移动方向移动,确定出第二序列开始选取位置;所述从第二基数中的第二位置上选取得到第二数字序列,包括:从第二基数中的所述第二序列开始选取位置开始,沿所述预设选取方向,选取得到所述预设第一长度的第二数字序列。其中一种可能的实现方式中,在所述从所述第二基数中的第二位置上选取得到所述第二数字序列之后,所述方法还包括:判断所述第二数字序列的长度是否小于预设第一长度;若所述第二数字序列的长度小于所述预设第一长度,则基于所述第二数字序列的长度与所述预设第一长度的长度差,将所述第二数字序列的长度补充至所述预设第一长度。其中一种可能的实现方式中,所述基于所述第二数字序列的长度与所述预设第一长度的长度差,将所述第二数字序列的长度补充至所述预设第一长度,包括:获取与所述长度差相等长度的零序列;在所述第二数字序列中添加所述零序列,使得所述第二数字序列的长度等于所述预设第一长度。其中一种可能的实现方式中,在所述从所述第二基数中的第二位置上选取得到所述第二数字序列之后,所述方法还包括:判断所述第二数字序列是否等于所述预设第一长度的零序列;若所述第二数字序列等于所述预设第一长度的零序列,则从所述第二基数中的预设初始选取位置上选取得到所述预设第一长度的第三数字序列,基于所述第三数字序列确定随机数。其中一种可能的实现方式中,在所述从所述第二基数中的第二位置上选取得到所述第二数字序列之后,所述方法还包括:在存在相同数字序列的情况下,将所述第二位置沿预设移动方向,按照预设第二长度移动,获得第三位置;从所述第二基数中的第三位置上选取得到第四数字序列,基于所述第四数字序列确定随机数。其中一种可能的实现方式中,所述获取当前时刻,根据所述当前时刻,确定出基数,包括:基于预设素数对所述当前时刻进行增大运算,获得增大数;对所述增大数进行进制转换,获得所述基数。第二方面,本申请提供了一种随机数生成装置,包括:随机数生成模块,用于响应于随机数生成指令,生成随机数,其中,所述随机数生成指令中包含随机数的生成次数;所述随机数生成模块包括:基数获取模块,用于获取当前时刻,根据所述当前时刻,确定出基数;数字序列选取模块,用于从所述基数中选取得到数字序列,基于所述数字序列确定随机数,其中,所述数字序列在所述基数中的位置与随机数的生成次数之间具有映射关系。第三方面,本申请提供了一种电子设备,包括:一个或多个处理器;存储器;以及一个或多个计算机程序,其中所述一个或多个计算机程序被存储在所述存储器中,所述一个或多个计算机程序包括指令,当所述指令被所述设备执行时,使得所述设备执行如第一方面所述的方法。第四方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行如第一方面所述的方法。第五方面,本申请提供一种计算机程序,当所述计算机程序被计算机执行时,用于执行第一方面所述的方法。在一种可能的设计中,第五方面中的程序可以全部或者部分存储在与处理器封装在一起的存储介质上,也可以部分或者全部存储在不与处理器封装在一起的存储器上。附图说明图1P为现有技术随机数生成方法的流程示意图;图1为本申请随机数生成方法一个实施例的方法示意图;图2为本申请随机数生成方法一个实施例的流程示意图;图3为本申请随机数生成装置一个实施例的结构示意图;图4为本申请电子设备一个实施例的结构示意图。具体实施方式本申请的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。如图1P所示,现有的随机数生成方法,在PLC内嵌的C语言环境下运行rand()函数,利用C语言中的rand()函数生成一个位于0~RAND_MAX(RAND_MAX大于等于32767)之间的整数,以该整数作为基准,生成随机数。然而,当PLC开机后,现有的随机数生成方法经多次运算生成的随机数会逐渐相同,无法确保通信唯一性和准确性。本申请人发现,在现有的随机数生成方法中,根据一个称为“种子”的数作为基准以递推公式推算出来一个系数,当该系数很大时,就会符合正态分布,从而相当于生成了随机数。然而,当PLC开机时,该“种子”为固定值,根据该固定值多次运算后生成的随机数会趋于收敛,使得随机数逐渐相同,从而影响通信唯一性和准确性。为此,本申请提出一种随机数生成方法、装置和设备,能够避免多次生成的随机数逐渐相同的情况发生,有利于确保通信唯一性和准确性。图1为本申请随机数生成方法一个实施例的方法示意图。如图1和图2所示,上述随机数生成方法可以包括:S101、响应于随机数生成指令,生成随机数;在本实施例本文档来自技高网...

【技术保护点】
1.一种随机数生成方法,其特征在于,包括:/n响应于随机数生成指令,生成随机数;/n所述生成随机数包括:/n获取当前时刻,根据所述当前时刻,确定出基数;/n从所述基数中选取得到数字序列,基于所述数字序列确定随机数,其中,所述数字序列在所述基数中的位置与随机数的生成次数之间具有映射关系。/n

【技术特征摘要】
1.一种随机数生成方法,其特征在于,包括:
响应于随机数生成指令,生成随机数;
所述生成随机数包括:
获取当前时刻,根据所述当前时刻,确定出基数;
从所述基数中选取得到数字序列,基于所述数字序列确定随机数,其中,所述数字序列在所述基数中的位置与随机数的生成次数之间具有映射关系。


2.根据权利要求1所述的方法,其特征在于,所述从所述基数中选取得到数字序列,包括:
按照第一位置以及当前随机数的生成次数,确定出第二位置,其中,所述第一位置指的是在前n次生成随机数的过程中,第一数字序列在第一基数中的位置;
从第二基数中的第二位置上选取得到第二数字序列。


3.根据权利要求2所述的方法,其特征在于,所述第一位置包括第一序列开始选取位置,所述方法还包括:
在所述前n次生成随机数的过程中,从第一基数中的第一序列开始选取位置开始,沿预设选取方向,选取得到预设第一长度的第一数字序列。


4.根据权利要求3所述的方法,其特征在于,所述第二位置包括第二序列开始选取位置,所述按照第一位置以及当前随机数的生成次数,确定出第二位置,包括:
以预设第二长度为移动步长,将所述第一序列开始选取位置沿预设移动方向移动,确定出第二序列开始选取位置;
所述从第二基数中的第二位置上选取得到第二数字序列,包括:
从第二基数中的所述第二序列开始选取位置开始,沿所述预设选取方向,选取得到所述预设第一长度的第二数字序列。


5.根据权利要求2至4任一项所述的方法,其特征在于,在所述从所述第二基数中的第二位置上选取得到所述第二数字序列之后,所述方法还包括:
判断所述第二数字序列的长度是否小于预设第一长度;
若所述第二数字序列的长度小于所述预设第一长度,则基于所述第二数字序列的长度与所述预设第一长度的长度差,将所述第二数字序列的长度补充至所述预设第一长度。


6.根据权利要求5所述的方法,其特征在于,所述基于所述第二数字序列的长度与所述预设第一长度的长度差,将所述第二数字序列的长度补充至所述预设第一长度,包括:
获取与所述长度差相等长度的零序列;
在所述第...

【专利技术属性】
技术研发人员:张铂
申请(专利权)人:广东智源机器人科技有限公司
类型:发明
国别省市:广东;44

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

1