gpt4 book ai didi

c++ - random_shuffle 每次都会产生相同的结果

转载 作者:行者123 更新时间:2023-11-30 00:35:43 27 4
gpt4 key购买 nike

我试图洗牌,但 random_shuffle 每次都产生相同的结果

void
Deck::shuffle() {

cout << "SHUFFLING CARDS!!!\n\n";

srand(time(0));
random_shuffle(cards.begin(), cards.end());

displayCards();
}

最佳答案

那是因为你每次都将伪随机数生成器播种到相同的值:

srand(time(0));

如果我没记错的话,time 的粒度是秒。如果您在调用 Deck::shuffle() 之间暂停执行一段时间,您应该会看到不同的结果。

从函数中删除该行并在程序开始时调用一次。

关于c++ - random_shuffle 每次都会产生相同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18278656/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com