按指定概率生成随机数,如按1/1000的概率生成11位的随机数(即两个数相同的概率为1/1000)

如题:
模拟生产环境处理客户数据,即有新增也有修改,客户号为客户唯一标识。
客户号重复的比例在一次批量数据中的概率大概为1/1000,即可能有相同的
也可能没有相同的客户号,但是重复的概率为1/1000。怎样按照1/1000的概率生成11位的客户号?

事先生成1000个不重复的11位随机数。放到数组中。
之后的客户号都从这1000数组元素中随机获取,这样重复的概率就是1/1000。

随机生成一个0-999的数字,作为前缀或者后缀,后面/前面接上一个固定的数字

这多简单,11位数想重复率为1/1000,只能说明一件事,这11位数只有1000个。所以,直接预先生成1000个11位数就行了,每次都随机取一个返回过去

问答版主就是牛,从现在起只回论坛,不在踏入问答半步