是否有随机函数生成0到1之间的数字

时间:2014-12-16 02:52:22

标签: c++

我已经看到在JavaScript中使用 math.random()来选择0到1之间的随机数。这个函数在C ++中也可用,或者只包含在Java和更新版本中语言

4 个答案:

答案 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