gpt4 book ai didi

c++ - 在不重复的情况下选择随机字符 C++

转载 作者:行者123 更新时间:2023-11-27 23:58:13 25 4
gpt4 key购买 nike

我需要不重复地选择 m 个随机字符(字母),我完全卡住了,我一直只得到 1 个随机字母。我该如何修复我的代码?有没有办法解决这个问题,或者我应该放弃这个想法并从一些 kinf od 教程中寻找解决方案?

#include <iostream>
#include <ctime>
#include <cstdlib>
#include <string>

using namespace std;

int main()
{
cout << "number below 27" << endl;
int m;
cin >> m;

srand(time(NULL));
bool repeat = false;
char letters[m];
char letter;
for(int i = 0; i < m; i++){
letter = rand()%26 +97;
repeat = true;
for(int j = 0; j < m; j++){
if(letters[m] == letters[j]){
repeat = false;
break;
}
}
if(repeat){
letters[m] = letter;
}
}
for (int i = 0; i < m; i++){
cout << letters[m];
}
}

最佳答案

你可以使用 suffle -

#include <random>
#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

int main ()
{
char charSet[]={'a','b','c'};//You can add all the charecters
std::random_device rd;
std::mt19937 g(rd());
std::shuffle(charSet,charSet+3,g);
for(auto c : charSet)
{
std::cout<<c;
}
std::cout<<endl;
return 0;
}

关于c++ - 在不重复的情况下选择随机字符 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41015311/

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