`
ccjsjymg
  • 浏览: 61983 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

c++ 随机数rand()必须结合srand(time(NULL))

阅读更多
引用

在c++中,使用c++ rand()获取随机数必须结合srand(time(NULL)),rand()是依靠初始化值产生随机数,而srand(time(NULL))初始化初始值,使每次产生的随机数不一样。在不使用srand(time(NULL)),通过测试遍历一万遍对于某个数出现的频率很大,如:()
int flag1 = 0;
    for(int i = 0;i <= 100000000;i++)
    {
            //srand(time(NULL));
            int a = rand()%101;
            if(a == 99)
            {
               flag1++; 
            }
    }
    cout<<flag1<<endl;
    /**************************/
    /*2*/
    int flag2 = 0;
    for(int i = 0;i <= 100000000;i++)
    {
            srand(time(NULL));
            int a = rand()%101;
            if(a == 99)
            {
               flag2++; 
            }
    }
     cout<<flag2<<endl;

分享到:
评论
1 楼 C_J 2009-04-19  
刚查了下

“Srand是种下随机种子数”

根据当前时间重新生成的随机种子数
当然比全部使用1个种子数的“随机性”更强了

楼主说的没错~

相关推荐

    c++随机数产生函数

    c++随机数产生函数是生成随机数的函数,主要包括rand()和srand()两个函数。rand()函数用来产生随机数,而srand()函数用来设置随机数种子。 rand()函数 rand()函数用来产生随机数,函数原型为`int rand(void)。`...

    c语言中rand()和srand()产生随机数方法比较

    在这个例子中,我们使用 `srand(time(NULL))` 来设置种子,然后用 `rand()` 生成10个随机数。由于种子是当前时间,每次运行时,生成的随机数序列都将不同。 对比与选择: `rand()` 和 `srand()` 通常一起使用,因为...

    qt c++随机数

    如果希望 `rand()` 在每次程序运行时产生的值都不一样,必须给 `srand(seed)` 中的参数 `seed` 指定一个变值,这个变值必须在每次程序运行时都不一样(比如到目前为止流失的时间)。如果我们给 `seed` 指定的是一个...

    随机数rand

    在C++或者C语言中,`srand` 和 `rand` 函数是生成随机数的标准库函数,它们是实现随机性的重要部分。 `srand` 是用来设置随机数种子的函数,其原型为 `void srand(unsigned int seed)`。种子是用于初始化随机数生成...

    随机数生成,2005例程

    本例程“随机数生成,2005例程”主要关注如何在Visual Studio 2005环境下利用C++标准库中的`rand`和`srand`函数生成伪随机数。 首先,我们要理解什么是伪随机数。尽管被称为“随机”,但它们实际上是通过确定性的...

    C++ 随机数与随机种子数的实例

    只有当使用当前系统时间(通过`time(NULL)`获取)作为种子,`rand()`才能每次生成不同的序列,因为系统时间总是在不断变化。 3. **何时设置随机种子**:在一个项目或可执行文件中,通常只需要设置一次随机种子。这...

    C和C++随机数或字符串生成源码.doc

    总的来说,C和C++中的随机数生成涉及到`rand()`和`srand()`的基本使用,以及如何通过它们生成指定范围的随机数。在实际编程中,我们还应关注随机数质量,特别是对于安全性和统计性质要求较高的应用,可能需要使用更...

    C++随机数产生器[文].pdf

    C++中的随机数生成是编程中常见的需求,特别是在模拟、游戏开发、数据分析等领域。...总的来说,C++中的随机数生成主要依赖`rand()`和`srand()`函数,通过合理地设置和使用它们,可以满足各种随机数生成的需求。

    生成随机数rand函数的用法详解

    为了每次运行程序都能得到不同的随机数,通常我们会使用当前时间作为种子,即 `srand((unsigned)time(NULL))`。`time(NULL)` 返回自1970年1月1日以来的秒数,确保每次运行时的种子都是唯一的。如果需要更细粒度的...

    C++随机数生成实例讲解

    srand( (unsigned)time( NULL ) ); rand() % N; 仔细想一下,这个结果是随机的吗(当然,我们不考虑rand()函数的伪随机性)? 不是的,因为rand()的上限是RAND_MAX,而一般情况下,RAND_MAX并不是N的整数倍,那么...

    MFC实现产生随机数

    在这个例子中,`srand(time(NULL))`用于设置随机数生成器的种子,确保每次运行程序时都能得到不同的序列。`rand() % 100 + 1`用于生成[1, 100]范围内的随机整数。最后,`SetDlgItemInt`函数用于将生成的随机数显示在...

    C语言C++中怎样产生随机数.pdf

    在C语言和C++中,产生随机数可以使用多种方法,包括使用rand()函数、rand_r()函数、rand_s()函数等。随机数有很多应用场景,例如模拟随机事件、生成随机数队列、security等。通过本文,我们了解了C语言和C++中产生...

    C/C++产生随机数函数简单介绍

    srand((unsigned int)time(NULL)); ``` 这里,`time(NULL)`返回当前时间的秒数,将其转换为无符号整数作为种子传给`srand()`。 生成随机数的基本步骤是: 1. 使用`srand()`设置种子。 2. 调用`rand()`来获取随机数...

    产生1-10随机数rand().zip_软件工程_C/C++_

    1. **初始化随机数种子**:`srand(time(NULL))`,这行代码会使用当前时间作为种子,确保每次程序运行时得到的随机序列都是不同的。如果省略这一步,`rand()`会使用一个默认的种子,可能导致每次运行都产生相同的序列...

    C++生成随机数的实现代码

    srand(time(NULL)); // ... 输出和统计随机数 ... } ``` C++11之后,C++标准库提供了更为强大的随机数生成设施,这些功能位于`&lt;random&gt;`头文件中。这个库包括了均匀随机位生成器(URBG)、随机数分布以及其他工具...

    vc6.0产生随机数

    这段代码首先调用 `srand(time(NULL))` 初始化随机数生成器,使用当前时间作为种子,确保每次运行都有不同的随机数序列。然后,循环10次,每次调用 `rand()` 生成一个新的随机数并打印。 然而,`rand()` 函数生成的...

    srand和rand简介.pdf

    `srand` 和 `rand` 是 C 和 C++ 语言中用于生成随机数的两个关键函数。它们被广泛应用于各种场景,如模拟、测试、游戏、加密等,涉及到计算机安全领域。 `srand` 函数是用来设置随机数生成器的种子。种子决定了...

    srand和rand简介.docx

    这可以通过结合`time`函数来实现,例如`srand((unsigned) time(NULL))`,这里的`NULL`是一个空指针,表示不传递任何参数,直接获取当前时间。 `rand`函数则用于生成随机数,它的原型是`int rand(void)`,返回的是0...

    C++随机数处理

    根据提供的文件信息,我们可以从中提炼出以下几个主要的知识点: ### 1. 操作系统的概念及其...此外,为了确保每次程序运行时生成的随机数序列不同,建议在程序开始时调用 `srand(time(NULL))` 初始化随机数生成器。

Global site tag (gtag.js) - Google Analytics