本文主要是介绍paip C NET循环获取不同随机数的方法根据时间,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
paip. C#.NET循环获取不同随机数的方法根据时间
作者Attilax , EMAIL:1466519819@qq.com
一般使用Random ra=new Random();就可以。。
但是如果应用在一个FOR循环中,取到的多个随机值就基本相同了。原因如下:
用系统时间做随机种子并不保险,如果应用程序在一个较快的计算机上运行,则该计算机的系统时钟可能没有时间在此构造函数的调用之间进行更改,Random 的不同实例的种子值
可能相同
解决思路: 循环体中加Thread.Sleep(1);
----------
这样就使得循环中的时间不同了,然后取Ticks,截取后9位为INT做种子,保证每次种子不同,可取到随机值 。。
Thread.Sleep(1);
long tick = DateTime.Now.Ticks;//一个以0.1纳秒为单位的时间戳,18位
int seed = int.Parse(tick.ToString().Substring(9)); // int类型的最大值: 2147483647
完整源码
-------
for (int i = 0; i < 20; i++)
{
Thread.Sleep(1);
long tick = DateTime.Now.Ticks;//一个以0.1纳秒为单位的时间戳,18位
int seed = int.Parse(tick.ToString().Substring(9)); // int类型的最大值: 2147483647
//或者使用unchecked((int)tick)也可
Random ran = new Random(seed);
int iResult;
int iUp = 100;
int iDown = 50;
iResult = ran.Next(iDown, iUp);
Response.Write(iResult + "<p>");
Response.Write( seed.ToString() + "---" + unchecked((int)tick) + "<p>");
}
作者Attilax , EMAIL:1466519819@qq.com
一般使用Random ra=new Random();就可以。。
但是如果应用在一个FOR循环中,取到的多个随机值就基本相同了。原因如下:
用系统时间做随机种子并不保险,如果应用程序在一个较快的计算机上运行,则该计算机的系统时钟可能没有时间在此构造函数的调用之间进行更改,Random 的不同实例的种子值
可能相同
解决思路: 循环体中加Thread.Sleep(1);
----------
这样就使得循环中的时间不同了,然后取Ticks,截取后9位为INT做种子,保证每次种子不同,可取到随机值 。。
Thread.Sleep(1);
long tick = DateTime.Now.Ticks;//一个以0.1纳秒为单位的时间戳,18位
int seed = int.Parse(tick.ToString().Substring(9)); // int类型的最大值: 2147483647
完整源码
-------
for (int i = 0; i < 20; i++)
{
Thread.Sleep(1);
long tick = DateTime.Now.Ticks;//一个以0.1纳秒为单位的时间戳,18位
int seed = int.Parse(tick.ToString().Substring(9)); // int类型的最大值: 2147483647
//或者使用unchecked((int)tick)也可
Random ran = new Random(seed);
int iResult;
int iUp = 100;
int iDown = 50;
iResult = ran.Next(iDown, iUp);
Response.Write(iResult + "<p>");
Response.Write( seed.ToString() + "---" + unchecked((int)tick) + "<p>");
}
给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
这篇关于paip C NET循环获取不同随机数的方法根据时间的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!