随机数发生器 - 为什么每次都播种

 玉龙惊云诱惑_786_286 发布于 2023-02-09 19:27

我是c和c ++的新手.在我用来编程的语言java中,它很容易实现随机数生成.只需从名为Math的类中调用静态随机方法.

int face = ((int)(Math.random() * 6) + 1);

模拟掷骰子......

在c和c ++中,你必须通过调用srand-function 来"播种随机数生成器"

srand ( time(NULL) );

这样做有什么意义 - 我的意思是每次运行代码时都必须为随机数生成器播种?

4 个回答
  • 给定相同的种子,伪随机数生成器每次都会产生相同的序列.因此,它归结为每次运行时是否需要不同的伪随机数序列.

    这真的取决于你的需求.有时您想重复一个序列.而当你不这样做的时候.您需要了解每个特定应用程序的需求.

    你必须做的一件事是在生成单个序列时反复播种.这样做很可能会破坏序列的分布.

    2023-02-09 19:29 回答
  • 通常所谓的随机数发生器实际上是一个伪随机数发生器.这通常意味着如果您为该序列提供"密钥",您可以生成相同的随机序列,称为"种子".当您希望测试基于随机化的算法时,这非常有用,并且您需要确保可重复的结果.

    如果您没有"种子"您的随机数生成器,默认情况下会为其添加一些(通常基于系统时间)随机数,因此每次运行程序时都会生成不同的序列.

    2023-02-09 19:29 回答
  • 如果你不为种子生成种子,那么每次运行程序时它都会有相同的种子,每次随机数序列都是相同的.

    另请注意,您只应在程序开始时为生成器播种一次.

    2023-02-09 19:29 回答
  • 优点是您可以通过提供相同的种子来重复随机数序列.

    游戏Elite使用它来存储整个世界,由数千颗星组成,作为单个数字.为了第二次生成完全相同的世界,刚刚提供了相同的种子.

    2023-02-09 19:32 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有