zoukankan      html  css  js  c++  java
  • [转]如何快速生成100万不重复的8位均匀分布的随机编号?

    原文:http://www.cnblogs.com/nokiaguy/archive/2008/05/11/1191906.html
     
       要在10000000 - 99999999之间产生100万个不重复的随机数。可以建立一个表table1,这个表有两个字段,一个是所产生的随机数字段(int型),另外一个也是int型字段。

        使用99999999 - 10000000 =89999999 整除 1000000 = 89(舍去)。然后从10000000开始循环1000000次,从10000000开始每一次加89,
    即10000000、10000089、10000178...
    然后每循环一次,使用newid生成一个随机数,将这两个数做为值插入table1中。即第一个字段插入按步长89递增的数,第二个数是使用newid随机生成的数。这样,table1就有100万条记录了,不过随机值是顺序的。但由于第二个字段是随机的,因此,只要按第二个字段排序,第一个字段上的值就是随机的。

        这样做不用检查重复值就可以保证得到1000000个无重复的随机数。而且它们是均匀分布在10000000到99999999之间。
    当然,也可以随机变化89的步长,使其更加随机。
    这样做还有一个好处,可以分批地生成记录,然后一起插入表中。如一次产生1000条这样的记录,插入后再产生下一千条记录。这样只要循环1000次就可完成。
    作者:菩提树下的杨过
    出处:http://yjmyzz.cnblogs.com
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    centos7 hbase 搭建笔记
    【转】python 2.6.6升级到python 2.7.x版本的方法
    centos7 sqoop 1 搭建笔记
    centos7 hive + 远程mysql 搭建笔记
    docker 批量操作容器
    centos7 hdfs yarn spark 搭建笔记
    【转】mysql查看表空间占用情况
    【转】Centos 7 修改主机名hostname
    jQuery选择
    jQuery检查复选框是否被选
  • 原文地址:https://www.cnblogs.com/yjmyzz/p/1192274.html
Copyright © 2011-2022 走看看