首页 > 编程知识 正文

什么是随机数种子,产生随机数种子

时间:2023-05-05 20:49:51 阅读:177675 作者:2510

随机数rand(); 随机数种子 srand();

执行程序代码时,可能需要大量数据来测试程序是否正确。 主观输入的话缺点很多,如果能让计算机自动生成数据供测试就好了。

如果在多次运行代码后发现问题,则每次运行后的结果都相同。 在同一位置的数字都是一样的。 不管什么时候运行,换电脑都一样。 那是因为rand ()函数是通过一系列计算得到的函数,结果是不变的。

为了解决这个问题,设置随机数种子。 srand (); 所需的参数是无符号整形。 rand ) )的默认随机数种子为1。 所以,如果每次运行得到的数据不一样,你只需要改变随机数种子就可以了。 但是,如果随机数种子相同,则每次执行时对应位置的数据都相同。

那么,考虑一下解决另一个问题的方法吧。 我们怎么让我们每次执行之后的数据都不一样呢? 另外,我们不需要每次手动更改数据。 怎么做srand (); 括号里的数字每次都在变呢。 时间到了。 时间总是在变化。 我们使用获取时间的函数作为参数。 srand () unsigned (time ) ) null ); 这个time ) )函数获取从1970年1月1日零时到现在的秒数,但是如果bzdpd运行程序时时间的秒数发生了变化,则每次得到的随机数也不一样。

# include stdio.h # include stdlib.h # include time.hint main ({ srand ) (unsigned ) time ) null ) }; 打印(% d (n ),rand ); 打印(% d (n ),rand ); 打印(% d (n ),rand ); 返回0; }当然,随机数也可以得到我们想要的范围的值,怎么办?

想得到0-9范围内的随机数rand (时

0-11范围内的随机数rand ();

1~10在最上面一个也就是rand () ) 1就可以了。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。