接近于真正随机的种子,前提是主机的mac地址不被破解者获取
来源:互联网 发布:各种软件logo图标 编辑:程序博客网 时间:2024/04/30 05:20
确保绝对随机数(无重复)
在使用 C# 产生随机数时,一般来说大家都不希望会有重复的出现,但有时候确很难避免这种情况发生。
如在运行一个程序时,要连续产生多个随机数,而且期间的时间间隔非常短,这时候就会出问题了,最基本的产生随机数写法是:1Random r = new Random();
但这事必不能解决上面所提的情况,会产生很多完全相同的随机数,所以必须在产生时添加一个随机数因子的参数,这样可以避免出现重复的可能性,不过这个随机数因子要如何确定呢?
我之前试过使用时间毫秒来做,感觉应该算是可以的了:1Random r = new Random(unchecked((int)(DateTime.Now.Ticks)));
这也是MSDN上的做法了,不过就算这样,现在的电脑运行速度还是太快了,所以一样会有机会出现重复的,而且机会还不少哦,然后我就尝试每次运行前将 Tick 加 1,不过总还是不能彻底解决,只是将机率减少而已。
不过解决的办法总会有的,其实有一个绝对可以保证无重复的方法,就是使用 GUID 来做随机因子,大家都知道,GUID是绝对不可能重复的啦,所以用其来做因子就是最好的选择,代码如下:1Random r = new Random(Guid.NewGuid().GetHashCode());
- 接近于真正随机的种子,前提是主机的mac地址不被破解者获取
- 获取远程主机MAC地址的方法
- 获取主机MAC地址
- C#的随机种子
- Java的随机种子
- c#获取远程主机的MAC地址(转贴)
- C++编码获取本地主机的MAC地址
- 使用windows API获取本地主机的MAC地址
- Linux LAN 通过IP获取目标主机的MAC地址
- 《不困于心,不惑于情,真正的勇敢是懦弱,最高的智慧是愚拙-雾满拦江》
- 苹果iOS8使用随机MAC地址发送probe request的真正目的
- 获取真正的IP地址
- Java获取主机Mac地址
- 实现获取主机名称,IP地址,MAC地址的类 (java)
- 获取指定IP地址远程主机的计算机名和Mac地址
- ASP.NET 获取指定远程IP地址主机的mac地址,但是要小心缓存溢出
- 带随机种子的javascript随机函数
- 查找对方主机的MAC地址
- printf("%x,%x",ptr1[-1],*ptr2);大小端,寻址!
- JBPM数据库分析
- C语言const详解
- 2.3版本服务器端改进
- Ubuntu下安装MySQL
- 接近于真正随机的种子,前提是主机的mac地址不被破解者获取
- Android 的界面构成
- C++ 及 STL相关链接
- Oracle9i,c,c++,oci,occi,ORA-12154错误原因
- 转,windows编程中关于文件的操作
- 转,windows编程中关于文件的操作
- C语言中的位段(转)
- Android RIL 模块架构
- 6.策略模式