C++ 生成随机字母 string bolsa_letras::letters_生成器(整数数量){ int已生成=0; map aux=值; 串出; while(已生成!=数量){ char-generated_char='A'+rand()%26; 如果(辅助[生成的字符]>0){ out.push_back(生成的_char); aux[生成的字符]--; 已经生成了++; } } 返回; }

C++ 生成随机字母 string bolsa_letras::letters_生成器(整数数量){ int已生成=0; map aux=值; 串出; while(已生成!=数量){ char-generated_char='A'+rand()%26; 如果(辅助[生成的字符]>0){ out.push_back(生成的_char); aux[生成的字符]--; 已经生成了++; } } 返回; },c++,random,C++,Random,上面是给定数字生成随机字母的代码 地图保存字母和字母出现的时间。问题是每次我运行代码时,它都会打印相同的:NLRBBMQH。为什么会这样 我将cstdlib包含在rand函数中。确定性程序无法自然生成随机性。我们需要从其他地方获得这种随机性。在以前的中,我们通常使用的结果是在每次运行时产生不同的状态 如今,我们使用的工具“更随机” 从中可以找到int类型整数的示例。现在,char也是一种整数类型。让我们稍微调整一下他们的例子: string bolsa_letras::letters_gener

上面是给定数字生成随机字母的代码

地图保存字母和字母出现的时间。问题是每次我运行代码时,它都会打印相同的:NLRBBMQH。为什么会这样


我将cstdlib包含在rand函数中。

确定性程序无法自然生成随机性。我们需要从其他地方获得这种随机性。在以前的中,我们通常使用的结果是在每次运行时产生不同的状态

如今,我们使用的工具“更随机”

从中可以找到
int
类型整数的示例。现在,
char
也是一种整数类型。让我们稍微调整一下他们的例子:

string bolsa_letras::letters_generator(int quantity){
    int already_generated = 0;
    map<char, int> aux = values;
    string out;
    while(already_generated != quantity){
        char generated_char = 'A' + rand()%26;
        if(aux[generated_char] > 0){
            out.push_back(generated_char);
            aux[generated_char]--;
            already_generated++;
        }
    }

    return out;
}
#包括
#包括
int main()
{
std::random_device rd;//将用于获取随机数引擎的种子
std::mt19937 gen(rd());//标准mersenne_捻线机_引擎,带rd()种子)
标准:均匀分布图('A','Z');

对于(int n=0;n确定性程序不能自然地生成随机性。我们需要从其他地方获得这种随机性。在以前,我们通常使用的结果是在每次运行时生成不同的状态

如今,我们使用的工具“更随机”

从中可以找到类型为
int
的整数的示例。现在,
char
也是整数类型。让我们稍微调整一下他们的示例:

string bolsa_letras::letters_generator(int quantity){
    int already_generated = 0;
    map<char, int> aux = values;
    string out;
    while(already_generated != quantity){
        char generated_char = 'A' + rand()%26;
        if(aux[generated_char] > 0){
            out.push_back(generated_char);
            aux[generated_char]--;
            already_generated++;
        }
    }

    return out;
}
#包括
#包括
int main()
{
std::random_device rd;//将用于获取随机数引擎的种子
std::mt19937 gen(rd());//标准mersenne_捻线机_引擎,带rd()种子)
标准:均匀分布图('A','Z');

对于(int n=0;您需要为PRNG设定种子。使用
srand
。不要使用
rand()
。使用@Fureeish谢谢您的回答您需要为PRNG设定种子。使用
srand
。不要使用
rand()
。使用@Fureeish谢谢您的回答