rand() 生成相同的数字 - 即使在我的主程序中使用 srand(time(NULL)) !

2023-12-10

所以,我试图创建一个随机向量(想想几何,而不是可扩展数组),每次调用随机向量函数时,我都会得到相同的 x 值,尽管 y 和 z 不同。

int main () {
    srand ( (unsigned)time(NULL));
    Vector<double> a;
    a.randvec();
    cout << a << endl;
    return 0;
}

使用该功能

//random Vector
template <class T>
void Vector<T>::randvec()
{
    const int min=-10, max=10;
    int randx, randy, randz;

    const int bucket_size = RAND_MAX/(max-min);

    do randx = (rand()/bucket_size)+min;
    while (randx <= min && randx >= max);
    x = randx;

    do randy = (rand()/bucket_size)+min;
    while (randy <= min && randy >= max);
    y = randy;

    do randz = (rand()/bucket_size)+min;
    while (randz <= min && randz >= max);
    z = randz;
}

由于某种原因,randx 将始终返回 8,而其他数字似乎完美地遵循(伪)随机性。但是,如果我在 randx 之前调用定义(例如 randy),randy 将始终返回 8。

为什么我的第一个随机数总是 8?难道是我播种方式不对?


问题是随机数生成器使用非常接近的值进行播种 - 程序的每次运行只会少量更改 time() 的返回值 - 可能是 1 秒,甚至可能没有!然后,相当差的标准随机数生成器使用这些相似的种子值来生成明显相同的初始随机数。基本上,您需要一个比 time() 更好的初始种子生成器和一个比 rand() 更好的随机数生成器。

我认为实际使用的循环算法是从 Accelerated C++ 中提取出来的,其目的是在所需范围内产生比使用 ​​mod 运算符更好的数字分布。但它无法弥补总是(有效地)给予相同的种子。

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

rand() 生成相同的数字 - 即使在我的主程序中使用 srand(time(NULL)) ! 的相关文章

  • 什么定义了类型的大小?

    ISO C 标准规定 sizeof char lt sizeof short lt sizeof int lt sizeof long 我在 BIT Linux mint 19 1 上使用 GCC 8 大小为long int is 8 我正
  • getline 之后返回到文件开头

    所以我已经从文件中读取了所有行 while getline ifile line logic 其中 ifile 是 ifstream line 是字符串 我的问题是我现在想再次使用 getline 并且似乎无法返回到文件的开头 因为运行 c
  • 更新 Azure Blob 上的 LastModified

    我正在移植代码以使用 C 中的 Azure 存储 SDK 传统上 我称其为更新修改文件的上次写入 修改时间 File SetLastWriteTimeUtc fileName lastWriteTimeUtc 要更新 blob 的上次修改时
  • 对 ExecuteNonQuery() 的单次调用是原子的

    对 ExecuteNonQuery 的单次调用是否是原子的 或者如果单个 DbCommand 中有多个 sql 语句 那么使用事务是否有意义 请参阅我的示例以进行说明 using var ts new TransactionScope us
  • 如何使用c#从数据桶中获取所有文档?

    如何获取数据桶中的所有文档 我尝试过一个示例 但我只能获得一个特定的文档 这是我的代码 CouchbaseClient oclient oclient new CouchbaseClient vwspace data bucket name
  • 如何通过 libwebsocket 发送异步数据?

    我正在将 Warmcat 的 libwebsocket C 库用于小型 Websocket 服务器 我已经启动并运行了这些示例 并且可以发送数据以响应从 websocket 接收数据 例如回显发送的反向字节 但是 我无法弄清楚如何在不使用
  • 我可以将 char 或 DateTime 设置为 null 吗?

    我可以将 null 设置为char数据类型 并且DateTime在 C 中 多谢你们 这是不可能的 它是一个值类型 使用 char myChar null DateTime myDate null 这相当于 Nullable
  • C++ 指针和对象实例化

    这有效 MyObject o o new MyObject 而这并不 MyObject o new MyObject Why 关键词new 返回一个指针 http msdn microsoft com en us library kewsb
  • 无法将参数从 `const char *` 转换为 `char *`

    鉴于此代码 void group build int size std string ips Build the LL after receiving the member list from bootstrap head new memb
  • QSpinBox 输入 NaN 作为有效值

    我正在尝试扩展 QSpinBox 以能够输入 NaN 或 nan 作为有效值 根据文档 我应该使用 textFromValue valueFromText 和 validate 函数来完成此操作 但我无法让它工作 因为它仍然不允许我输入除数
  • C# 中的抽象类和接口类有什么不同?

    C 中的抽象类和接口类有什么不同 An 接口不是类 它只是一个contract定义了public一个类的成员must实施 抽象类只是一个类 您从中可以cannot创建一个实例 通常您会使用它来定义一个基类 该基类定义了一些virtual方法
  • 列表到优先队列

    我有一个 C 大学编程项目 分为两个部分 在开始第二部分时应该使用priority queues hash tables and BST s 我 至少 在优先级队列方面遇到了麻烦 因为它迫使我自己重做第一部分中已经实现的许多代码 该项目是关
  • 本地时间的内存需要释放吗?

    void log time t current time 0 tm ptm localtime current stuf 只是想确定 我是否需要在方法结束时释放 tm 指针分配的内存 不 你不应该释放它 该结构是静态分配的 检查文档 htt
  • 使用 OleDbCommand / OleDbDataAdapter 读取 CSV 文件

    我不明白为什么 但是当我使用 OleDbDataAdapter 或 OleDbCommand 读取 CSV 文件时 在这两种情况下 生成的数据结构良好 它识别文件头中的列 但行数据都是空字符串 我之前已经成功进行过多次 CSV 处理 因此我
  • 从 C# 调用时无法识别 Powershell 命令

    这是这个的延续Question https stackoverflow com questions 66280000 powershell object returns null 66280138 noredirect 1 comment1
  • 在 C# .NET 中对非 ASCII 字符进行编码

    我想向我的应用程序发送的电子邮件添加自定义标头 标头名称只能包含 ASCII 字符 但对于值和用户可能会输入 UTF 8 字符 我必须对它们进行 Base64 编码 此外 我还必须将它们解码回 UTF 8 以便在 UI 中向用户显示它们 最
  • 使用 cmake 将两种解决方案合二为一

    我有两个单独的 Visual Studio 2013 解决方案 我想将它们迁移到一个解决方案中 因为第一个解决方案 使用 Qt 充当第二个解决方案的 GUI 最后 我希望有一个结构如下的单一解决方案 Solution All Build P
  • 如何释放字符串未使用的容量

    我正在程序中处理很多字符串 这些字符串数据在读入我的程序后的整个生命周期内都不会改变 但由于 C 字符串保留了容量 因此浪费了大量肯定不会被使用的空间 我尝试释放这些空间 但没有成功 以下是我尝试过的简单代码 string temp 123
  • 如果仅使用第一个元素,是否必须为整个结构分配内存?

    我有一个结构 其中第一个元素被测试 并且根据其值 结构的其余部分将被读取或不会被读取 在第一个元素的值指示结构的其余部分不会被读取的情况下 我是否必须为整个结构或仅第一个元素分配足够的内存 struct element int x int
  • 展开 std::reference_wrapper 的成本

    Given include

随机推荐

  • Redis GET 与 SQL SELECT

    我对 NoSQL 还很陌生 但我一直很喜欢它的想法 我看了一下Redis 并提出了一些有关存储和接收多个的最佳方式的问题hashes 假设以下场景 Store a list of objects redis Hashes and selec
  • 解析 iOS 推送通知

    我已经完成了 Push 的事情解析网 一切正常 然后我被要求为公司创建一个解析帐户并进行设置 以便他们可以自己管理 好吧 没有意识到网站上有一个导出按钮 我删除了我帐户上的应用程序 并为他们创建了一个帐户 并将应用程序添加到他们的帐户中 我
  • .NET 反射:如何获取部分类上定义的属性

    我使用 NET 实体框架 我想将属性从一个 EntityObject 复制到另一个 但 System Type GetProperties 似乎没有返回分部类上定义的属性 Code 在 Visual Studio 生成的 XXX edmx
  • 使用 mysql 选择前 N 个*组*

    为了简单起见 假设我有一个包含 2 个字段的表 PERSON NAME 和 COMPANY ID 以及这些对 a 1 b 1 c 2 d 2 e 3 PERSON NAME a 和 b 在 COMPANY ID 1 工作 依此类推 我想选择
  • 将产品附加字段添加到 WooCommerce 上的特定产品

    我需要更改代码 以便不在我的所有 WooCommerce 产品上显示文本区域 但只有 2 个 这是在我的 WordPress 子主题上functions php file 我已将 product id 更改为 product id 2130
  • XSLT 为同一 XSL 的同一输入 XML 获取两个不同的输出

    我一直在在线工具中尝试我的 XSLT 代码 XSLT 1 0 处理器 http www freeformatter com xsl transformer html 最近 我不得不利用xs dateTime因此开始使用使用的工具XSLT 2
  • iOS CoreBluetooth 未扫描 iPad Air 中的服务

    我正在开发一个连接到 BLE 外设并从中接收数据的应用程序 它扫描外围设备 找到外围设备 发现服务 如果找到正确的服务 它就会接收数据 它在 iPhone 5 上运行良好 但当我在 iPad Air 上运行它时 它可以连接 但没有发现任何服
  • 防止网站上的暴力登录

    作为对最近的回应推特劫持 and Jeff 关于字典攻击的帖子 保护您的网站免受暴力登录攻击的最佳方法是什么 Jeff 的帖子建议为每次尝试登录增加延迟 并且评论中的建议是在第二次失败的尝试后添加验证码 这两个看起来都是好主意 但是你怎么知
  • XSLT、XML:按属性值分组

    使用 XSLT 根据属性值对元素进行分组的最佳方法是什么 使用 XSLT 2 0 或更高版本会更好吗 非常感谢您的帮助 Thomas 原始 XML
  • 如何使用宏将多个网页的数据提取到Excel中

    我正在尝试从一个特定网站将数据提取到 Excel 2007 中 但数据分布在多个网页上 我想在我的工作表中看到的是该网站上提供了哪些项目 而无需浏览许多页面或使用搜索 我的浏览器中有点错误 我尝试过通过 Excel 导入数据 但这只适用于一
  • Pandas - 计算过去 x 天数的值频率

    我发现了一些意想不到的结果 我想做的是创建一个列来查看 ID 号和日期 并计算该 ID 号在过去 7 天内出现的次数 我还想让该列动态化 x 数量 天 但只是尝试 7 天 所以给定这个数据框 import pandas as pd df p
  • 使用 Angular JS 更改 HTML 表格单元格背景颜色

    我刚刚开始在我的项目中使用 Angular JS 我一直在寻找一种方法来根据 Angular JS 表达式的值更改 HTML 表格单元格的背景颜色 但尚未找到解决方案 这是单元格 td data material or service td
  • Spring Security Thymeleaf 静态资源未加载

    我将 Spring MVC 与 Thymeleaf 和 Spring Security 一起使用 我想使用 Thymeleaf 模板加载页面 并且可以加载静态资源 我想从 template html 加载位于以下位置的图片 static i
  • 使用隐式模拟部分类型参数推断?

    我正在 Scala 中制作一个简单的依赖注入框架 用于构造函数注入 这个想法是 DI 对象将其所需的服务像常规参数一样放入其构造函数中 并实现一个类型类来确定哪些参数是从容器中获取的 哪些是由用户在实例化时传递的 所以 它应该看起来像 tr
  • 在querydsl中调用mysql嵌套/内部函数

    我需要在 QueryDsl Native MySQL 中运行以下查询 SELECT cast json unquote JSON EXTRACT vendor master vendor currency as char as curren
  • 在新方法中创建意图

    因此 我想要一个启动一个 Activity 的意图 该 Activity 只需弹出一个对话框弹出框 告诉用户如何使用该应用程序 我有代码 private final View OnClickListener btnClick new Vie
  • 如何在没有 System.exit 的情况下退出 Java 程序?(来自用户输入?)

    这是我的代码 我不确定如何使用返回值退出程序 有任何想法吗 这是我的任务的最后一步 重要区域标有 我听说 return 有效 但是当我将 main 中的 void 更改为 int 时 程序说 main 必须为 void import jav
  • python中以0开头的数字是什么意思?

    当我在 python 中输入前面带 0 的小整数时 它们会给出奇怪的结果 为什么是这样 gt gt gt 011 9 gt gt gt 0100 64 gt gt gt 027 23 我正在使用Python 2 7 3 我已经在 Pytho
  • Java获取所有选中的复选框

    我有一个 Java 对话框 向用户显示大约 15 个复选框 有没有办法一次性获取所有选中复选框的名称 目前 我正在一一查看它们是否被选中 这并不是一个理想的解决方案 我正在寻找类似的东西获取数组中所有选定的复选框但后来在Java中 当您将复
  • rand() 生成相同的数字 - 即使在我的主程序中使用 srand(time(NULL)) !

    所以 我试图创建一个随机向量 想想几何 而不是可扩展数组 每次调用随机向量函数时 我都会得到相同的 x 值 尽管 y 和 z 不同 int main srand unsigned time NULL Vector