【发布时间】:2012-09-01 22:38:10
【问题描述】:
我正在尝试使用 rand() 函数洗牌,但由于某种原因,当我尝试查看洗牌后的牌组是什么样子时,它完全没有洗牌。我不确定我错过了什么,所以任何帮助将不胜感激。
void Deck::Shuffle()
{
for (int j = 0; j <= 51; j++)
{
srand(time(0));
int i = 1 + rand()%52;
int k = 1 + rand()%52;
Card temp = theDeck[i];
theDeck[i] = theDeck[k];
theDeck[k]= temp;
}
}
编辑:谢谢大家的帮助。我已经修复了现在可以阅读的代码。
void Deck::Shuffle()
{
srand(time(0));
for (int j = 0; j <= 51; j++)
{
int i = 1 + rand()%52;
int k = 1 + rand()%52;
Card temp = theDeck[i];
theDeck[i] = theDeck[k];
theDeck[k]= temp;
}
}
【问题讨论】:
-
即使我只播种一次也不能解决问题,但感谢您的指点。
-
@cadavid4j:你播种一次怎么样?更新您的代码。
-
现在查找
std::random_shuffle。 -
Nvm...我明白你在说什么。非常感谢。
标签: c++ algorithm random shuffle