- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 64 位 Windows PC 上使用 Microsoft Visual Studio Community 2015,版本 14.xxx。
程序读取一个文本文件,其中每一行都是桥牌(四名玩家,每人有 13 张牌)。该文件由可靠的第 3 方程序生成,但我还是验证了每笔交易,并且每个输入行都通过了验证。
然后,我根据点数、花色长度等变量将“相似”交易分组到类(容器)中。这是使用字符串流和 Bin 结构映射的标准文本处理。对于给定的输入文件,它是完全确定的。
大约 3/4 的时间我得到相同的输出,例如23 个可能的 bins - 如预期的那样,跨 bins 的交易频率加起来就是输入交易的数量。但是剩余的输出可能有 6 到 50 个 bin(具有正确的频率总数)。
这种随机性可能出现在哪里?我使用所有变量的默认初始化,因此,即使这是错误的,它也应该在给定文件上运行的程序之间保持一致。例如,
std::string line; // Raw data on a deal.
std::vector<std::string> parsed_deal;
std::map<std::string, struct Bin> m_bin;
std::stringstream ss_bin[MAX_BINS];
最佳答案
默认初始化并不意味着每次运行程序时所有变量都将以完全相同的方式初始化。特别是,默认初始化意味着在几种情况下未初始化。示例包括未初始化的基本类型(int
、float
、指针、它们的数组等)(例如 auto
未初始化为零的变量), 以及实际上没有被构造函数初始化的类类型的成员。访问未初始化变量的值(如果它是指针,更不用说取消引用了)会产生未定义的行为。
当然,还有其他未定义行为的原因(从数组的末尾掉下来,骚扰指针,对同一指针调用运算符 delete
两次,调用运算符 delete
在 malloc()
返回的指针上。
如果行为未定义,则“非确定性”行为是一种可能的结果。例如,当一个变量被定义但没有被初始化时,它的值可能基于之前发生在那个物理/逻辑内存位置的任何东西。因此访问它的值的结果将取决于之前有哪些其他代码(在您的程序中,在您的操作系统中,甚至在另一个进程中)使用该内存,以及该内存在您的程序访问它之前如何/是否被覆盖。
关于c++ - 确定性 C++ 程序的 "Random"输出。可能的原因?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34826431/
我使用 Deflater 编写了一个备份程序SHA-1 用于存储文件和哈希值。我看到Java的Deflater使用zlib 。如果我显式设置 Deflater 的级别,无论平台和 JRE 版本如何,我
考虑以下算法: r = 2 while r >= 1: x = -1 + 2 * random.random() y = -1 + 2 * random.random() r
我正在编写一个持久保存到磁盘的映射类。我目前只允许 str键,但如果我可以使用更多类型会很好:希望最多可以是任何可散列的(即与内置 dict 相同的要求),但更合理的是我会接受字符串、unicode、
我有一个不使用随机化的脚本,当我运行它时会给出不同的答案。我希望每次运行脚本时答案都是一样的。该问题似乎只发生在某些(病态)输入数据上。 该代码段来自一种计算线性系统特定类型 Controller 的
这对我来说不是问题,没有它我也可以生活,但我只是好奇这是否可能以及如何实现。 今天我了解到,scrapy.Request 不会按照启动的顺序完成。 伪代码示例: class SomeSpider(sc
我正在运行这个 SVD来自 scipy 的求解器,代码如下: import numpy as np from scipy.sparse.linalg import svds features = np
我正在尝试使用确定性 Miller-Rabin 算法实现素数检查功能,但结果并不总是正确的:在检查前 1,000,000 个数字时,它只找到 78,495 而不是 78,498。 这是使用 [2, 7
我正在审查各种 Android 声音 API,我想知道我应该使用哪一个。我的目标是获得低延迟的音频,或者至少是关于播放延迟的确定性行为。 我们遇到了很多问题,Android 声音 API 似乎很垃圾,
过去,我处理过对时间要求严格的软件开发。这些应用程序的开发基本上是这样进行的:“让我们编写代码,测试延迟和抖动,并优化它们,直到它们在可接受的范围内。”我觉得这非常令人沮丧。这不是我所说的 适当的工程
给定: SQL Server 表名为 TEST_TABLE TEST_TABLE 中名为 TEST_FIELD 的列 VARCHAR(50) NOT NULL 第 1 行:10YR3/6 第 2 行:
我在 64 位 Windows PC 上使用 Microsoft Visual Studio Community 2015,版本 14.xxx。 程序读取一个文本文件,其中每一行都是桥牌(四名玩家,每
我需要在 PHP 中创建一个可证明公平(确定性和种子)加密安全 (CS) 随机数生成器。我们正在运行 PHP 5,而 PHP 7 现在并不是一个真正的选择。但是,我找到了 PHP 7 的新 CS 函数
我是一名优秀的程序员,十分优秀!