CN110069242A - 一种随机数发生器及电子券、动态支付码的生成方法 - Google Patents

一种随机数发生器及电子券、动态支付码的生成方法 Download PDF

Info

Publication number
CN110069242A
CN110069242A CN201910345096.8A CN201910345096A CN110069242A CN 110069242 A CN110069242 A CN 110069242A CN 201910345096 A CN201910345096 A CN 201910345096A CN 110069242 A CN110069242 A CN 110069242A
Authority
CN
China
Prior art keywords
array
random
value
randomizer
serial number
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910345096.8A
Other languages
English (en)
Inventor
陈其洪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
XUNFU INFORMATION TECHNOLOGY Co Ltd
Original Assignee
XUNFU INFORMATION TECHNOLOGY Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by XUNFU INFORMATION TECHNOLOGY Co Ltd filed Critical XUNFU INFORMATION TECHNOLOGY Co Ltd
Priority to CN201910345096.8A priority Critical patent/CN110069242A/zh
Publication of CN110069242A publication Critical patent/CN110069242A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0207Discounts or incentives, e.g. coupons or rebates

Abstract

本发明公开了一种随机数发生器及电子券、动态支付码的生成方法,包括初始排序数组生成模块:所述初始排序数组包含指定位长的全部数字,数组的值与数组序号一致,且按大小顺序排序;随机种子数组生成模块:用随机数算法得到序号,随机算法取值范围为0到数组元素个数减1,每取一个数,数组元素个数减1;将随机序号存储的数值按次序放入随机种子数组中;随机数获取模块:按次序从随机种子数组取值,取出的值即为随机数。本发明提供的随机数发生器及电子券、动态支付码的生成方法,能够使用位长范围内的全部随机数,且保证取出的随机数不会重复。

Description

一种随机数发生器及电子券、动态支付码的生成方法
技术领域
本发明涉及一种高效随机数获取方法,尤其涉及一种随机数发生器及电子券、动态支付码的生成方法。
背景技术
在支付领域,随机数用途非常广,如:电子券号、随机密码等。
常规随机数的获得方法存在以下痛点:
1.随机因子选择不当,易生成相同随机数;
2.随着生成的随机数增加,出现重复随机数的概率越来越大,生成效率也越低,必须增加数字长度以提高可用性;
不能充分利用理论上可用的数字,且效率低下。如6位数字理论上存在1百万个随机数,但因以上原因,基本不可能高效的生成这1百万个不同的随机数。
发明内容
本发明所要解决的技术问题是提供一种随机数发生器及电子券、动态支付码的生成方法,能够高效不重复地获得预定数字长度范围内的所有随机数。
本发明为解决上述技术问题而采用的技术方案是提供一种随机数发生器,包括初始排序数组生成模块:所述初始排序数组包含指定位长的全部数字,数组的值与数组序号一致,且按大小顺序排序;随机种子数组生成模块:用随机数算法得到序号,随机算法取值范围为0到数组元素个数减1,每取一个数,数组元素个数减1;将随机序号存储的数值按次序放入随机种子数组中;随机数获取模块:按次序从随机种子数组取值,取出的值即为随机数。
上述的随机数发生器,其中,所述初始排序数组按指定随机数位长N生成,序号i从0开始递增,最大序号为位长N对应的最大值。
上述的随机数发生器,其中,所述随机种子数组生成模块包括:判断初始排序数组中当前包含的数据个数n是否等于1,当个数n等于1时,将初始排序数组中序号为0的存储单元中存储的值添加到随机种子数组中;当个数n不等于1时:使用random(0,n-1)生成1个随机数r;查找初始排序数组中序号为r的存储单元,并将该存储单元中存储的值添加到随机种子数组中;将初始排序数组中最后一个存储单元中存储的值复制到初始排序数组中序号为r的存储单元;将初始排序数组的数据个数n减去1;重复上述过程,直至将初始排序数组中的所有数值放进随机种子数组中。
本发明为解决上述技术问题还提供一种电子券的生成方法,其中,采用上述的随机数发生器,包括如下步骤:S1)设定代发电子券的张数及其对应的最大位长,生成初始排序数组;S2)随机按序号从初始排序数组中取值,并放入随机种子数组;S3)按序号查询随机种子数组,获取不重复的随机数作为电子券的唯一识别码。
上述的电子券的生成方法,其中,采用两个上述的随机数发生器生成随机种子数组,当其中一个随机数发生器中的随机种子数组使用完后,自动启用另一个随机种子数组。
上述的电子券的生成方法,其中,当需要生成的券号长度大于随机数发生器返回随机数最大长度时,多次调用随机数发生器,并用获得的多个随机数组合成一个需要的券号。
本发明为解决上述技术问题还提供一种动态支付码的生成方法,其中,采用上述的随机数发生器,包括如下步骤:S1)设定动态支付码的最大位长;S2)随机按序号从初始排序数组中取值,并放入随机种子数组;S3)按序号查询随机种子数组,获取不重复的随机数作为动态支付码。
本发明对比现有技术有如下的有益效果:本发明提供的随机数发生器及电子券、动态支付码的生成方法,能够使用位长范围内的全部随机数,且保证取出的随机数不会重复。
附图说明
图1为本发明随机数获取流程示意图;
图2为本发明生成随机种子数组流程示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的描述。
图1为本发明随机数获取流程示意图。
请参见图1,本发明随机数获取流程如下:
步骤1:按指定位长生成初始排序数组;特征:1)数组的值与数组序号一致,且从小到大排序;2)包含指定位长的全部数字;
步骤2:随机按序号取值放入随机种子数组;特征:1)用随机数算法得到序号,随机算法取值范围为0到数组元素个数减1,每取一个数,数组元素个数减1;2)将随机序号存储的数值按次序放入随机种子数组;
步骤3:按序号从随机种子数组取值;特征:1)按次序从随机种子数组取值;2)取出的值即为随机数;3)取出的随机数不会重复;4)能使用位长范围内的全部随机数。
本发明提供的随机数发生器,包括:
一、初始排序数组生成模块
按指定随机数位长,使用此位长生成一个数组,序号从0开始递增,最大序号为位长的最大值,如6位位长时,序号从0到999999,且使存储的值与序号相同,即存储的值也从0到999999。从而得到一个经过排序的数组。
二、随机种子数组生成模块
请参见图2,本发明随机种子数组生成模块工作过程如下:
S1.判断初始排序数组中包含数据的个数N是否等于1?刚开始时,数据个数N等于指定位长能容纳的最大数字,如6位位长为1000000个。
S2.当个数N不等于1时:
a)使用随机数范围0到包含的数据个数N-1,即random(0,N-1),生成1个随机数r;
b)使用步骤a)中得到的r,查找初始排序数组中序号为r的存储单元,将该存储单元中存储的值添加到随机种子数组。
c)R不等于N-1时,将初始排序数组中最后一个存储单元(序号为N-1)中存储的值复制到初始排序数组中序号为r的存储单元;
d)将初始排序数组的数据个数N减去1;
e)再次回到步骤S1,判断初始排序数组中包含数据的个数N是否等于1?
S3.当个数N等于1时:
a)将初始排序数组中序号为0的存储单元中存储的值添加到随机种子数组。
b)此时初始排序数组中所有的数据都已添加到随机种子数组,至此全部完成了生成随机种子数组的工作。
生成的随机种子数组有以下特征:1)数组存储的数据包含了指定位长的所有数字,如指定位长6,数据包括0到999999的所有数字;2)每个存储单元存储的数字都不相同;3)数组中存储的数字是随机存储,且不存在重复。
三、随机数获取模块
获取随机数的装置在生成随机种子数组时,初始化读取序号i,读取序号i的值由随机数算法产生,随机数算法取值范围为0到N-1,即random(0,N-1),其中N为随机种子数组存储数据的个数。
获取随机数的装置收到获取随机数的请求时,该装置:1)返回序号i对应存储单元存储的数据;2)对序号i加1,当i等于N时,将i设置为0;
通过此装置获得的随机数的过程,无需调用随机数算法,只需查询随机种子数组,因而具有以下特征:1)获取效率非常高;2)能充分使用指定位长内的所有数字;3)避免了生成随机数的冲突问题。
本发明的随机数发生器可用于生成电子券或动态支付码。在实际使用过程中:1、该随机数发生器以微服务的方式对外提供高效的获取随机数的服务;2、该装置内部接入两个通过本发明方法生成的随机种子数组,当其中一个随机种子数组使用完后,自动启用另一个随机种子数组,同时,在已使用完的随机种子数组的存储空间中,使用本发明的方法重新生成新的随机种子数。3、在需要生成的券号长度大于该装置返回随机数最大长度时,考虑调用多次本随机数发生器,用获得的多个随机数组合成一个需要的券号。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的修改和完善,因此本发明的保护范围当以权利要求书所界定的为准。

Claims (7)

1.一种随机数发生器,其特征在于,包括:
初始排序数组生成模块:所述初始排序数组包含指定位长的全部数字,数组的值与数组序号一致,且按大小顺序排序;
随机种子数组生成模块:用随机数算法得到序号,随机算法取值范围为0到数组元素个数减1,每取一个数,数组元素个数减1;将随机序号存储的数值按次序放入随机种子数组中;
随机数获取模块:按次序从随机种子数组取值,取出的值即为随机数。
2.如权利要求1所述的随机数发生器,其特征在于,所述初始排序数组按指定随机数位长N生成,序号i从0开始递增,最大序号为位长N对应的最大值。
3.如权利要求2所述的随机数发生器,其特征在于,所述随机种子数组生成模块包括:
判断初始排序数组中当前包含的数据个数n是否等于1,当个数n等于1时,将初始排序数组中序号为0的存储单元中存储的值添加到随机种子数组中;
当个数n不等于1时:使用random(0,n-1)生成1个随机数r;查找初始排序数组中序号为r的存储单元,并将该存储单元中存储的值添加到随机种子数组中;将初始排序数组中最后一个存储单元中存储的值复制到初始排序数组中序号为r的存储单元;将初始排序数组的数据个数n减去1;
重复上述过程,直至将初始排序数组中的所有数值放进随机种子数组中。
4.一种电子券的生成方法,其特征在于,采用如权利要求1~4所述的随机数发生器,包括如下步骤:
S1)设定代发电子券的张数及其对应的最大位长,生成初始排序数组;
S2)随机按序号从初始排序数组中取值,并放入随机种子数组;
S3)按序号查询随机种子数组,获取不重复的随机数作为电子券的唯一识别码。
5.如权利要求4所述的电子券的生成方法,其特征在于,采用两个如权利要求1~4所述的随机数发生器生成随机种子数组,当其中一个随机数发生器中的随机种子数组使用完后,自动启用另一个随机种子数组。
6.如权利要求4所述的电子券的生成方法,其特征在于,当需要生成的券号长度大于随机数发生器返回随机数最大长度时,多次调用随机数发生器,并用获得的多个随机数组合成一个需要的券号。
7.一种动态支付码的生成方法,其特征在于,采用如权利要求1~4所述的随机数发生器,包括如下步骤:
S1)设定动态支付码的最大位长;
S2)随机按序号从初始排序数组中取值,并放入随机种子数组;
S3)按序号查询随机种子数组,获取不重复的随机数作为动态支付码。
CN201910345096.8A 2019-04-26 2019-04-26 一种随机数发生器及电子券、动态支付码的生成方法 Pending CN110069242A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910345096.8A CN110069242A (zh) 2019-04-26 2019-04-26 一种随机数发生器及电子券、动态支付码的生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910345096.8A CN110069242A (zh) 2019-04-26 2019-04-26 一种随机数发生器及电子券、动态支付码的生成方法

Publications (1)

Publication Number Publication Date
CN110069242A true CN110069242A (zh) 2019-07-30

Family

ID=67369127

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910345096.8A Pending CN110069242A (zh) 2019-04-26 2019-04-26 一种随机数发生器及电子券、动态支付码的生成方法

Country Status (1)

Country Link
CN (1) CN110069242A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113485676A (zh) * 2021-07-08 2021-10-08 上海通联金融服务有限公司 随机生成信用卡号的方法及系统
CN113721887A (zh) * 2021-08-30 2021-11-30 上海通联金融服务有限公司 随机散列算法生成系统卡号的方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050129247A1 (en) * 2003-12-10 2005-06-16 Infineon Technologies Ag Device and method for generating random numbers using a pseudo random number generator
CN102541508A (zh) * 2010-12-29 2012-07-04 鸿富锦精密工业(深圳)有限公司 真随机数产生系统及方法
CN103034471A (zh) * 2012-12-10 2013-04-10 杜海洋 一种随机数的生成方法及系统
CN103927147A (zh) * 2013-01-16 2014-07-16 擎泰科技股份有限公司 用于随机数产生器的延迟装置及方法及其随机数产生器
CN106791882A (zh) * 2016-12-05 2017-05-31 Tcl集团股份有限公司 一种图像的编码加密方法及装置
CN107203365A (zh) * 2016-03-17 2017-09-26 阿里巴巴集团控股有限公司 随机数的生成及获取方法和装置
CN107391084A (zh) * 2017-07-24 2017-11-24 无锡江南计算技术研究所 一种高效可重复随机数产生装置及方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050129247A1 (en) * 2003-12-10 2005-06-16 Infineon Technologies Ag Device and method for generating random numbers using a pseudo random number generator
CN102541508A (zh) * 2010-12-29 2012-07-04 鸿富锦精密工业(深圳)有限公司 真随机数产生系统及方法
CN103034471A (zh) * 2012-12-10 2013-04-10 杜海洋 一种随机数的生成方法及系统
CN103927147A (zh) * 2013-01-16 2014-07-16 擎泰科技股份有限公司 用于随机数产生器的延迟装置及方法及其随机数产生器
CN107203365A (zh) * 2016-03-17 2017-09-26 阿里巴巴集团控股有限公司 随机数的生成及获取方法和装置
CN106791882A (zh) * 2016-12-05 2017-05-31 Tcl集团股份有限公司 一种图像的编码加密方法及装置
CN107391084A (zh) * 2017-07-24 2017-11-24 无锡江南计算技术研究所 一种高效可重复随机数产生装置及方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113485676A (zh) * 2021-07-08 2021-10-08 上海通联金融服务有限公司 随机生成信用卡号的方法及系统
CN113721887A (zh) * 2021-08-30 2021-11-30 上海通联金融服务有限公司 随机散列算法生成系统卡号的方法

Similar Documents

Publication Publication Date Title
CN110413611B (zh) 数据存储、查询方法及装置
CN109697133A (zh) Id生成方法、装置及系统
JP5107691B2 (ja) サブチャネル識別子順列置換によるフレーム動的スケジューリング手順
CN108205577B (zh) 一种数组构建、数组查询的方法、装置及电子设备
CN110069242A (zh) 一种随机数发生器及电子券、动态支付码的生成方法
US6898661B2 (en) Search memory, memory search controller, and memory search method
WO2019045799A1 (en) DISTRIBUTED DATA STORAGE SYSTEMS
CN105468699B (zh) 去重数据统计方法及设备
CN104572994B (zh) 用于搜索数据的方法和装置
CN101986282A (zh) 拓扑适配方法及装置
Chen et al. An efficient data storage method of NoSQL database for HEM mobile applications in IoT
US8788470B2 (en) Allocating and managing random identifiers using a shared index set across products
CN110032586B (zh) 储能电芯数据的存储方法、查询方法及采集存储系统
US6665210B1 (en) Data storage and retrieval
CN105610593B (zh) 网管系统中资源标识分配的方法及装置
CN105843732A (zh) 测试用例分配方法和测试用例分配装置
CN112380004B (zh) 内存管理方法、装置、计算机可读存储介质及电子设备
CN116225467A (zh) 一种otp烧录方法及微控制器
CN108874816B (zh) 用于多个烧录设备的序号烧录方法及序号烧录系统
CN110688380B (zh) 适用于存储空间受限的设备的通讯录防重构建方法
CN110362575A (zh) 一种生成数据的全局索引的方法及装置
CN111427508A (zh) 一种文件均衡分布方法及装置
CN110188011A (zh) 一种智能卡国密算法测试方法及装置
US9645793B2 (en) Random permutation generator and method for generating a random permutation sequence
CN109976670B (zh) 支持数据保护功能的串行非易失性存储控制器设计方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination