- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在 C++ 中生成一个任意长度的随机数。 “合理任意”是指受主机速度和内存限制。
假设:
我想采样一个长度为 ceil(log10(MY_CUSTOM_RAND_MAX))
的十进制数(以 10 为底)来自 0
至 10^(ceil(log10(MY_CUSTOM_RAND_MAX))+1)-1
我有一个 vector<char>
vector<char>
的长度是ceil(log10(MY_CUSTOM_RAND_MAX))
每个 char
实际上是一个整数,一个介于 0 和 9 之间的随机数,用 rand()
选取或类似的方法
如果我使用 std::random_shuffle
为了打乱 vector ,我可以从末尾开始遍历每个元素,乘以十的增量幂将其转换为 unsigned long long
或者任何映射到我的最终范围的东西。
不知道std::random_shuffle
有没有问题就随机性而言,特别是在选择 rand()
的序列时结果填充 vector<char>
.
std::random_shuffle
有多粗略?在可量化的意义上以这种方式生成任意长度的随机数?
(我意识到 Boost 中有一个用于生成随机 int
数字的库。目前尚不清楚范围限制是什么,但它看起来像 MAX_INT
。也就是说,我意识到该库存在。这是更多关于生成任意大随机数的 STL 这部分的一般性问题。预先感谢您将您的答案集中在这部分。)
最佳答案
我不太清楚这个问题的重点,但我会尝试从几个不同的角度来回答:
关于c++ - std::random_shuffle 到底有多随机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4553223/
所以我有一个卡片 vector ,我正在尝试使用 random_shuffle 方法对其进行洗牌,但它并没有通过仅将第一项和最后一项传递给它来洗牌。所以我知道有第三个参数是自定义种子,它的东西,ran
我试图洗牌,但 random_shuffle 每次都产生相同的结果 void Deck::shuffle() { cout << "SHUFFLING CARDS!!!\n\n"; s
我正在测试 random_shuffle 函数模板,并能够在我的 MacBook 上生成不同的输出。但是,当我在我 friend 的 Windows 机器上尝试时,情况有所不同。 程序将尝试生成 5
以下对随机洗牌的调用始终为 vector v 提供相同的结果 #include #include #include #include using namespace std; int main
我在像这样的 vector 上使用 random_shuffle: #include vector deck; //some code to add cards to the deck here
我有一个 Blackjack 程序,它使用一个充满整数的 vector 来模拟一副纸牌: vector deck; 并用 1-10 填充它: for (int i=0; i<=4; ++i) // P
假设你需要指定范围内的随机数,传统的方法是使用ANSI C的函数random(),然后格式化结果以便结果是落在指定的范围内。但是,使用这个方法至少有两个缺点。 首先,做格式化时,结果常常是扭曲的,
我有一个包含 52 张牌的牌组向量,我想对其进行洗牌。 vector cards; 所以我用了这个: random_shuffle(cards.begin(), cards.end()); 问题是它每
我想在 C++ 中生成一个任意长度的随机数。 “合理任意”是指受主机速度和内存限制。 假设: 我想采样一个长度为 ceil(log10(MY_CUSTOM_RAND_MAX)) 的十进制数(以 10
我的任务是通过将长度为“n”的数组的每个排列“喂入”一次来测试排序算法。我应该用 random_shuffle 来做。 我知道 random_shuffle 服从均匀分布——也就是说,每个排列产生的机
这个问题在这里已经有了答案: Is random_shuffle threadsafe? and using rand_r if it is not (3 个答案) 关闭 9 年前。 在 C++11
请注意已接受的答案指出问题在于重新播种。重新播种不是原因。没有重新播种的测试在发布前产生了高相关性。见注释 1。 我在 R 中生成了 1,000,000 个均匀随机数,对序列进行排序,然后调用 std
如果标准库中的 random_shuffle 算法没有提供随机生成器函数,如果提供相同的数据,程序的连续运行会产生相同的随机序列吗? 例如,如果 std::random_shuffle(filenam
#include #include #include #include int main() { std::vector a(256); for (short x = 0; x
我正在使用带有自定义随机数生成器的 std::random_shuffle 函数,对于相同的种子,在所有编译器中返回相同的随机数序列。 但是,我担心 std::random_shuffle 可能不会在
这个问题在这里已经有了答案: 关闭9年前。 Possible Duplicate: How to make sure that std::random_shuffle always produces
我有一个来 self 创建的类的对象 vector ,每个对象包含 4 个变量:两个 double 、一个 int 和一个 bool。 int 被用作 ID 号,因此我可以跟踪 vector 中的哪个
我想使用 random_shuffle()来自 的函数, 但当我查看它时,结果发现它使用了 rand()在幕后。这可以用于洗牌吗?我的印象是 rand()不是很好的随机值来源,最好使用来自 的 M
我试图通过先将列表复制到 vector 然后返回到空列表来打乱列表。 vector tmpVector(agents_.size()); copy(agents_.begin(), agents_.e
我在没有包含的情况下写了这个并且它运行成功。srand 和 random_shuffle 在标准库中吗?是不是很奇怪? 链接 here 和 here说它们在算法库中。 #include #inclu
我是一名优秀的程序员,十分优秀!