求一算法:
1.生成N万个唯一的8位数的数字 
2.算法不可逆
3.效率高 
唯一数

解决方案 »

  1.   

    生成数字,那就是数字本身,value。
    又不是value1-》value2的过程,
    怎么个不可逆?
      

  2.   

    真屌丝来了,那就依次随机产生8位数,将已产生的数保存到set(红黑树查询时间复杂度logN,N为8位数也就不到20)中,每次判断该随机数是否已存在于该set中,重复判断直到找到新的随机数为止。这样子,若是8位数产生万级别的效率肯定很高,若是十万到百万效率就低了,因为越大的量级越往后重复的概率就会越高
      

  3.   

    一次生成N万个?需要多大的内存池?
    不如建立一个MYSQL数据表,
    id auto increase 10000000-99999999
    mykey set default 为 0 select * from table where mykey = 0 ORDER BY RAND() limit 1
    每次随机取出一个id后,update table set mykey = 1 where id = $row['id'];
    这样保证数字不会被重复。