我已经看到在JavaScript中使用 math.random()来选择0到1之间的随机数。这个函数在C ++中也可用,或者只包含在Java和更新版本中语言
答案 0 :(得分:1)
来自rand()
库的<cstdlib>
函数,它返回0到RAND_MAX
之间的数字。如果您想要一个介于0和1之间的数字,则必须对强制转换和分割进行解决方法:
double X = ((double)rand() / (double)RAND_MAX);
这是一个实际的例子,将前面的代码放在一个函数中:
#include <cstdlib> // srand, rand
#include <ctime> // time
#include <iostream> //std::cout
double random01()
{
return ((double)rand() / (double)RAND_MAX);
}
int main()
{
srand(time(0)); // Remember to generate a seed for srand
for(int i=0; i< 100; ++i)
{
std::cout << random01() << '\n';
}
return 0;
}
答案 1 :(得分:1)
要在C ++中使用随机数生成器函数,您需要包含标头。
#include<iostream>
#include<cstdlib>
using namespace std;
int main()
{
int randomInteger = rand();
cout << randomInteger << endl;
}
如果要生成特定范围内的数字,可以使用模运算符。这不是生成范围的最佳方式,但它是最简单的。如果我们使用rand()%n,我们生成一个从0到n-1的数字。通过向结果添加偏移量,我们可以生成不基于零的范围。以下代码将生成从1到10的20个随机数:
#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
int random_integer;
for(int index=0; index<20; index++){
random_integer = (rand()%10)+1;
cout << random_integer << endl;
}
答案 2 :(得分:0)
是的,C ++库有一个实质的数字库,在C ++ 11的第26节中有描述。具体而言,随机数生成类在第26.5节中描述。
由于你的问题只是这个功能是否在C ++&#34;中可用,答案是&#34;是&#34;。
通过搜索Intertubes,您应该能够找到大量使用std::random_device
类和随机数生成库中的其他类的示例。
答案 3 :(得分:0)
int randomNumber = rand()%100; // for 0 to 99