0
点赞
收藏
分享

微信扫一扫

异步特定范围随机分配账户的机制

一只1994 2022-04-14 阅读 26
Erlang算法

异步特定范围随机分配账户的机制,应该是一个erlang/otp 的 gen_server

这个只是一个初步的思路,以后有时间了实现之

  1. 初始化
    1.1. 设定区间左右边界 RangeStart = 10000, RangeLen = 999999
    1.2. 设定一个初始范围 Range 比如 [RangeStart, RangeStart+RangeLen),
    1.3. 设置一个空有序集合 accountSet (可调整左右边界、写入磁盘)
  2. 按Range范围生产一个随机数,判断是否再 accountSet 中
    2.1. 如果存在,重新生成随机数
    2.2. 如果不存在写入 accountSet
  3. 检查accountSet
    3.1.1 判断 accountSet 左侧连续元素的长度 leftInt(该算法如何时间)
    3.1.2 如果 leftInt > 3,删除accountSet最左侧连续的元素,并且调整 Range 左边界,
    3.2.1 判断 accountSet 右侧连续元素的长度 RightInt
    3.2.2 如果 RightInt > 3 ,删除accountSet最右侧连续的元素,并且调整 Range 右边界
    3.3 accountSet 总是再 Range 范围内收敛,直到空为止
  4. 如果accountSet为空
    4.1 RangeStart 设置为 RangeStart2 = RangeStart + RangeLen + 1,
    4.2 新的Range有边界自然为 RangeStart2 + RangeLen
  5. 已新的Range范围生产一个随机数,重复步骤2 3 4
Min1 = 1, Max1 = 3.
Min2 = Max1+1, Max2=2*Max1.
Min3=Max2+1,Max3=3*Max1.
Min4=Max3+1,Max4=4*Max1.
[Min1,Max1,Min2,Max2,Min3,Max3,Min4,Max4].
举报

相关推荐

0 条评论