求一个 唯一码 的生成算法,要求long型

wangyu4882 2003-10-15 06:06:33
...全文
100 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
短歌如风 2003-10-17
  • 打赏
  • 举报
回复
GUID的生成算法很复杂,没有ttmmdd说的那样简单。它保证在有网卡的机器上生成的近乎于唯一,在没有网卡的机器上近乎于本地唯一,重复的机率非常低。不过砍掉一些位后就不保证这一点了,还不如用一个线性同余随机发生器(我给出的就是一个)——在循环一个周期前不会重复。
ttmmdd 2003-10-16
  • 打赏
  • 举报
回复
是GUID吧.
低16位是当前毫米秒钟
高16位年月日.
XOR机器IP
XOR机器CPU ID
...
位数超过的砍掉就行了,
xdspower 2003-10-16
  • 打赏
  • 举报
回复
在加个随机数值在后面不就可以了????
long不够呀?才32位,很容易重复的不过对单机来说,上面的基本上就可以了
wangyu4882 2003-10-16
  • 打赏
  • 举报
回复
那么在同一台机器上,在一毫秒内调用2次,生成的不就相同了么
BlueSky2008 2003-10-15
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/2343/2343688.xml?temp=.3560297
短歌如风 2003-10-15
  • 打赏
  • 举报
回复
x = long((unsgined __int64)(unsigned long)x * 32769 + 65535)
x会取遍所有有效long值最后回到初值。
NowCan 2003-10-15
  • 打赏
  • 举报
回复
怎么个唯一法?

33,006

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧