CN110069242A - 一种随机数发生器及电子券、动态支付码的生成方法 - Google Patents
一种随机数发生器及电子券、动态支付码的生成方法 Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/588—Random number generators, i.e. based on natural stochastic processes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0207—Discounts or incentives, e.g. coupons or rebates
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Finance (AREA)
- Development Economics (AREA)
- Strategic Management (AREA)
- Accounting & Taxation (AREA)
- Marketing (AREA)
- Entrepreneurship & Innovation (AREA)
- General Business, Economics & Management (AREA)
- Game Theory and Decision Science (AREA)
- Economics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Control Of Vending Devices And Auxiliary Devices For Vending Devices (AREA)
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)按序号查询随机种子数组,获取不重复的随机数作为动态支付码。
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)
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)
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 | 无锡江南计算技术研究所 | 一种高效可重复随机数产生装置及方法 |
-
2019
- 2019-04-26 CN CN201910345096.8A patent/CN110069242A/zh active Pending
Patent Citations (7)
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)
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) | 数据存储、查询方法及装置 | |
CN101313495B (zh) | 数据同步方法、系统及装置 | |
CN109697133A (zh) | Id生成方法、装置及系统 | |
CN110069242A (zh) | 一种随机数发生器及电子券、动态支付码的生成方法 | |
JP2008160836A (ja) | サブチャネル識別子順列置換によるフレーム動的スケジューリング手順 | |
US6898661B2 (en) | Search memory, memory search controller, and memory search method | |
US8788470B2 (en) | Allocating and managing random identifiers using a shared index set across products | |
CN110334141A (zh) | 数据转换的方法、装置、计算机设备和存储介质 | |
WO2019045799A1 (en) | DISTRIBUTED DATA STORAGE SYSTEMS | |
CN105468699B (zh) | 去重数据统计方法及设备 | |
CN101986282A (zh) | 拓扑适配方法及装置 | |
CN112380004B (zh) | 内存管理方法、装置、计算机可读存储介质及电子设备 | |
Chen et al. | An efficient data storage method of NoSQL database for HEM mobile applications in IoT | |
CN109862097A (zh) | Id生成方法及装置 | |
US6665210B1 (en) | Data storage and retrieval | |
CN110032586B (zh) | 储能电芯数据的存储方法、查询方法及采集存储系统 | |
CN111666257A (zh) | 一种文件分片存储的方法、装置、设备和存储介质 | |
CN105610593B (zh) | 网管系统中资源标识分配的方法及装置 | |
CN113672621B (zh) | 一种生成时序主键的方法、装置及设备 | |
CN116484442A (zh) | 基于数据加密的智能售电数据存储方法 | |
CN110188011A (zh) | 一种智能卡国密算法测试方法及装置 | |
CN112311461B (zh) | 基于fc-ae-1553协议的消息处理方法和装置 | |
CN101141663B (zh) | 一种用于提高智能网访问数据库效率的方法及系统 | |
CN115687477A (zh) | 数据转换方法、装置、信息消费端及存储介质 | |
CN113190554A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190730 |
|
RJ01 | Rejection of invention patent application after publication |