兰德每次运行程序时都会产生相同的结果

时间:2018-12-21 16:20:25

标签: c random random-seed srand

我正在制作一个随机生成入口和出口的迷宫游戏。但是每次我跑步时,入口和出口都在同一位置。

我用过几种形式的rand和srand,但从未成功。

这是程序生成的内容。 在第一次执行中: enter image description here 在第二个执行中: enter image description here

2 个答案:

答案 0 :(得分:2)

生成随机数时,必须向生成器提供“种子”。如果每次执行的种子相同,则每次启动程序时生成的随机数列表将相同。

要拥有不同的列表,您必须在每次执行时更改种子。做到这一点的一种好方法是使用当前时间作为bruno使用srand(time(0));

建议的伪随机数生成器的初始化程序。

答案 1 :(得分:0)

在您的第一个srand(time(0));之前rand()每次都用一个新种子对其进行初始化

{编辑答案} 对添加图片的问题进行的编辑表明问题可能与我们首先想的不一样。但是,如果没有更多的投入,我们现在就有办法给出正确的答案...