gpt4 book ai didi

algorithm - 随机数生成器算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:35:25 24 4
gpt4 key购买 nike

银行使用什么算法生成随机数,例如(信用卡/借记卡号码)?

假设我维护数据库中的所有数字,如果我尝试以下方法,

  1. 生成一个随机数。
  2. 验证号码是否已分配。
  3. 如果是,转到第 1 步。
  4. 如果没有在数据库中为新数字创建记录并输出结果。

当卡片容量增加时,它会要求更多的数据库命中。

对此还有其他看法吗?请帮忙。

最佳答案

非重复随机数问题一般有3种解法:

  1. 如果您想要大范围内的几个数字,则选择一个,如果重复则拒绝。如果范围很大,那么这不会导致太多的重复尝试。这就是你上面提到的。

  2. 如果您想要小范围内的大量数字,请将所​​有数字放在一个数组中并打乱数组。 Fisher-Yates algorithm是数组改组的标准。从打乱后的数组中按顺序取出随机数。

  3. 如果您想要大范围内的大量数字,请使用适当大小的加密算法。例如。对于 64 位数字,使用 DES 并按顺序加密 0、1、2、3 ...。输出保证是唯一的,因为加密是可逆的。 Hasty Pudding Cipher可以设置为任何方便的数字范围。

关于algorithm - 随机数生成器算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8260971/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com