为什么生成随机数时:Random ran = new Random((int)DateTime.Now.Ticks); 要用DateTime.Now.Ticks,DateTime.Now.Ticks的意义是什么??
获取表示此实例的日期和时间的刻度数。 ---是什么意思
可是我还是不明白为什么生成随机数要用到它呀~
DateTime.Now.Ticks和生成随机数
答案:3 悬赏:30
解决时间 2021-02-21 12:44
- 提问者网友:写不出迷人情诗
- 2021-02-20 23:24
最佳答案
- 二级知识专家网友:一身浪痞味
- 2021-02-21 00:18
计算机的“随机数”并非真的“随机数”,而是伪随机数——也就是通过一系列算法,从一个起始数字开始按照一定规则算出来的。
就好像函数F(x)一样,x就是随机数的种子。
你可以做个测试:把你的"new Random(x)"里面的x设置成一个固定数字,例如1,多次运行程序打印随机数,你会发现每次运行打印出来的数字都是一样的。
DateTime.Now.Ticks是指从1970年1月1日(具体哪年忘了哈,好像是1970)开始到目前所经过的毫秒数——刻度数。
用时间毫秒做随机数的种子(x)可以尽量避免上面说的那种“随机数”变成了“非随机数”的情况。
解答完毕。
就好像函数F(x)一样,x就是随机数的种子。
你可以做个测试:把你的"new Random(x)"里面的x设置成一个固定数字,例如1,多次运行程序打印随机数,你会发现每次运行打印出来的数字都是一样的。
DateTime.Now.Ticks是指从1970年1月1日(具体哪年忘了哈,好像是1970)开始到目前所经过的毫秒数——刻度数。
用时间毫秒做随机数的种子(x)可以尽量避免上面说的那种“随机数”变成了“非随机数”的情况。
解答完毕。
全部回答
- 1楼网友:晨与橙与城
- 2021-02-21 01:28
private void button1_Click(object sender, EventArgs e)
{
textBox1.Text = DateTime.Now.ToString() + "\r\t" + DateTime.Now.Ticks.ToString();
}
把这句代码复制下来,然后一直按住会车不放.你就知道了.
- 2楼网友:一池湖水
- 2021-02-21 00:38
如果你只是说取值范围的话, ticks 会大的多,因为它是一个合成的值
millisecond 的值只会在 0 到 999999,它只是表示当前时间中的微秒部分
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯