昨天在这里发一个生成10位随机数的帖子 (原帖 http://topic.csdn.net/u/20100917/14/3d845be8-e479-46d1-85ea-b957be702cdf.html)很感谢各位的解答~但是还是有几个问题不明白1.先撇开位数的限制(指生成的随机数的长度),如果是6位随机数加上时间戳的组合作为随机数,仍然实现不了永不重复吗?
本来时间戳就是永不相同的,例如201009181234 这样~把这个时间使用MD5加密作为时间戳,不就可以实现永不重复了吗?2.如果是用Guid生成随机数,然后去掉"-"符号,截取其中10位,仍然会不重复的吗?3.如果10位实现不了,请问至少需要多少位?(这里也是指随机数的长度)
谢谢啦!~
本来时间戳就是永不相同的,例如201009181234 这样~把这个时间使用MD5加密作为时间戳,不就可以实现永不重复了吗?2.如果是用Guid生成随机数,然后去掉"-"符号,截取其中10位,仍然会不重复的吗?3.如果10位实现不了,请问至少需要多少位?(这里也是指随机数的长度)
谢谢啦!~
可以看得到他们的处理方式,他们是把数据分解成几部分来处理滴前缀通常是 按业务,按地区的编码
中缀通常是日期
后缀通常是流水编号,此处000001 表明当天该地区,该业务至少可以产生999999条记录
DateTime.Ticks:每个计时周期表示一百纳秒,即一千万分之一秒。1 毫秒内有 10,000 个计时周期。此属性的值表示自 0001 年 1 月 1 日午夜 12:00:00(表示 DateTime.MinValue)以来经过的以 100 纳秒为间隔的间隔数。
1,任何时间,从宇宙诞生到宇宙灭亡
2,任何地点,本机,互联网连接的机器,太阳系,比如火星上的火星车,全宇宙虽然现在人类还没有飞出太阳系
这样的随机数有,就是Guid,这个数的大小是2^128次方,需要占16个字节