Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/157.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在C语言中,如何以确定的概率处理命令?_C++_C_Command_Probability - Fatal编程技术网

C++ 在C语言中,如何以确定的概率处理命令?

C++ 在C语言中,如何以确定的概率处理命令?,c++,c,command,probability,C++,C,Command,Probability,我想这样处理一个命令,如果我按下字符a,在15%的情况下发出相应的命令。谢谢你的帮助 按下a键时,需要生成一个随机数 编辑:例如: #include <stdlib.h> if(PressedA){ int random=(rand() % 100); // random is in [0,99] if(random < 15){ command(); } } #包括 如果(按EDA){ int random=(rand()%

我想这样处理一个命令,如果我按下字符a,在15%的情况下发出相应的命令。谢谢你的帮助

按下a键时,需要生成一个随机数

编辑:例如:

#include <stdlib.h>

if(PressedA){
    int random=(rand() % 100); // random is in [0,99]
    if(random < 15){
        command();
    }    
}
#包括
如果(按EDA){
int random=(rand()%100);//random在[0,99]中
如果(随机<15){
命令();
}    
}

我想大概是这样吧。(使用
-std=c++11编译)

#包括
#包括
int main()
{
std::随机_装置rd;
标准:均匀分布d(0,99);
int x=d(rd);
如果(x<15)
{

std::难道你应该研究一下rand()函数,自己试试看。如果你遇到了特定的问题,你可以在这里问。如果rand()生成的值不是随机分布的,那么它可能是正确的(我不知道它是不是真的,所以我使用了绝对一致的分布:))rand()生成了一个均匀的分布,但明确说明这一点肯定更为明确。好的观点!请注意,如果
X
接近
rand_MAX
,则
rand%X
将不会特别均匀,但相比之下,100很小,因此不会产生任何显著差异。
#include <iostream>
#include <random>

int main()
{
    std::random_device rd;
    std::uniform_int_distribution<int> d(0, 99);
    int x = d(rd);
    if (x < 15)
    {
        std::cout << "you, lucky boy! " << x << std::endl;
    }
    return 0;
}