第一个 rand() 在 srand(time(0)) 之后生成相同的值

2024-01-04

srand(time(0))好像没有播种rand()正确的是,生成的第一个数字始终是相同的。

这是在 OS X 上运行的,我的设置或代码有问题吗?我确实等待了几秒钟来重新运行该程序。第一个数字仅在一天后增加,其余数字始终是随机的。

#include<iostream>
using namespace std;

int main ()
{
    int Num1,Num2;

    // seed the random number generator

    srand((unsigned int )time(NULL));

    Num1 = rand() %49 +1 ;

    do {Num2 = rand() % 49 + 1;}
    while(Num2 == Num1);

    ///Display Random Numbers

    cout<<"Numbers are: "<<endl;
    cout<<Num1<<" "<<Num2<<endl<<endl;

    return 0;
}

您会得到相同的数字,因为种子的值非常接近,并且随机生成器还没有时间发散。在 OS X 上使用sranddev()代替srand(),它会给你一个更好的种子并避免这个问题。

#include<iostream>
using namespace std;

int main()
{
  int a, b;

  // seed the random number generator
  sranddev();

  a = rand();
  b = rand();

  cout << a << " " << (a % 49) + 1 << endl
       << b << " " << (b % 49) + 1 << endl << endl;

  return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

第一个 rand() 在 srand(time(0)) 之后生成相同的值 的相关文章

随机推荐

  • FailedPreconditionError:表已初始化

    我正在使用数据集 api 从 tfrecords 读取数据 我正在使用以下代码将字符串数据转换为虚拟数据 SFR1 tf feature column indicator column tf feature column categoric
  • 当内容中包含 .com 时,链接在 标记中不起作用

    在我的代码中 我生成了 html 电子邮件消息的正文 其部分内容如下 a href mylink pl SomeName com a 当我在邮件客户端或 Gmail 中收到此电子邮件并单击链接时 我将被定向到SomeName com而不是到
  • 调用约定和评估顺序[重复]

    这个问题在这里已经有答案了 我知道 C 没有指定参数传递给函数的顺序 但是如果我们写下面的代码 void cdecl func int a int b int c printf d d d a b c int main int i 10 f
  • 会话超时后如何重定向到主页

    我正在开发一个网站 我想在会话超时后重定向到主页 谁能帮我解决这个问题 http csharpdotnetfreak blogspot com 2008 11 detecting session timeout and redirect h
  • Java2MySQL > 再次因底层异常导致通信链路失败

    我正在用Java编写程序 它连接到MySQL数据库 由于第一类是具有单个静态方法返回的类java sql Connection 调试完毕并连接正常后 我再也没有碰过它 几天前 我发现我的程序返回了这个错误 com mysql jdbc Co
  • 您需要关闭 HTML 中的元标签和链接标签吗?

    我只是在阅读某人的 HTML 他从未在 HTML head 部分关闭元标记和链接标记 代码运行良好 关闭这些标签是可选的吗 我认为如果标签没有关闭 它就会格式错误 A tag必须始终由标签关闭符号关闭 gt 如果我们忽略某些名义上适用于非
  • c/c++中void指针的用法

    嘿 我想知道如何在现实世界中应用空指针来使软件更安全 更灵活 例如 我知道 void 指针 它将转换到什么指针对外部是隐藏的 这将使软件更安全 您使用 void 指针还有其他原因吗 空指针不会使软件变得更安全 在 c 中使用 void 的原
  • 如何在调用 Live Keyup 事件后延迟执行 Javascript 函数?

    嘿程序员 我已经从下面的函数中删除了所有内容 以准确定位我需要帮助的内容 调用 keyup 事件后 reloadContent 函数将进行 ajax 调用以从数据库收集新数据 唯一的问题是 我的服务器超载 因为 keyup 事件没有延迟 每
  • 用于管理 Razor 部分视图脚本的 HtmlHelpers

    我正在尝试使用For 循环 Html 助手 http www nuget org packages Forloop HtmlHelpers 用于管理我的 ASP Net MVC 4 项目中 Razor 部分视图的脚本 div class r
  • 为什么我的 NSOperation 子类永远不会完成?

    我有一个NSOperation我想同时运行的子类 我的理解是 要使并发操作起作用 我需要定义isConcurrent回来YES 我需要定义start method 我需要发送 KVO 通知isExecuting and isFinished
  • Rspec :存根 ActiveStorage 下载方法

    我开发的系统使用 ActiveStorage 将缓存数据存储在 S3 上 然后再将其用于其他用途 在我的规范中 我想存根该文件的下载方法 并加载特定文件以进行测试 allow user cached data to receive down
  • CLion 索引器无法解析项目目录中的某些包含内容

    我有一个 CLion C 项目 其结构如下 project gt my includes gt my own hpp gt source gt my app gt my src cpp my src cpp 的第一行是 include my
  • 常规方法和异步方法有什么区别(OnGet 与 OnGetAsync)

    我开始学习 Razor Pages 的工作原理 教程提到了 OnGet 和 OnPost 还提到我们也有异步选项 OnGetAsync 和 OnPostAsync 但他们没有提到它们是如何工作的 显然它们是异步的 但是如何呢 他们使用 AJ
  • Mercurial:将变更集推送到仓库 A,不知何故仓库 B 也有它?

    我在服务器上有一个名为 Gold 的存储库 作为我的生产存储库 在服务器上有一个名为 Silver 的存储库 充当开发存储库 然后显然在我的本地客户端上有一个或多个存储库 奇怪的是 当我将变更集从本地开发机器推送到 Gold 时 Silve
  • 如何在oracle中插入日期和时间?

    我在表中插入行时遇到问题 这是插入语句和表创建 这是大学作业的一部分 因此很简单 我做错了什么 我使用的是 Oracle SQL Developer 版本 3 0 04 我遇到的问题是它只插入 dd mon yy 而不是时间 我如何让它也插
  • 类型“{}”不可分配给类型“IntrinsicAttributes & IntrinsicClassAttributes”

    我目前正在制作一个简单的反应应用程序 这是我的index tsx import as React from react import as ReactDOM from react dom import App from components
  • 非串行管道 HTTP 可能吗?

    RFC 2616第8 1 2 2节 http www w3 org Protocols rfc2616 rfc2616 sec8 html sec8 1 2 2 states 支持持久连接的客户端可以 管道 其请求 即发送多个请求而不等待每
  • 如何在 Firebase 3.0 中注销用户?

    根据文档 https firebase google com docs reference js firebase auth Auth 我用该方法强制用户注销signOut 这是我尝试过的 var rootRef firebase data
  • 如何将活动类添加到 codeigniter 超链接?

    我知道这个问题经常出现 但我只是不知道如何使用已经回答的帖子来做到这一点 我有一个带有导航链接的标题 我想补充一下class active 到当前处于活动状态的链接 如果我有以下导航 我该怎么做
  • 第一个 rand() 在 srand(time(0)) 之后生成相同的值

    srand time 0 好像没有播种rand 正确的是 生成的第一个数字始终是相同的 这是在 OS X 上运行的 我的设置或代码有问题吗 我确实等待了几秒钟来重新运行该程序 第一个数字仅在一天后增加 其余数字始终是随机的 include