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

 更新时间:2013年05月29日 17:07:33   作者:  
本篇文章是对C++中产生随机数的实现代码进行了详细的分析介绍,需要的朋友参考下
C++怎样产生随机数:这里要用到的是rand()函数, srand()函数,C++里没有自带的random(int number)函数。
(1) 如果你只要产生随机数而不需要设定范围的话,你只要用rand()就可以了:rand()会返回一随机数值, 范围在0至RAND_MAX 间。RAND_MAX值至少为32767。
例如:
复制代码 代码如下:

#include<stdio.h>
#include <iostream>

复制代码 代码如下:

int _tmain(int argc, _TCHAR* argv[])
{
       for(int i=0;i<10;i++)
             cout << rand() << endl;
}

(2) 如果你要随机生成一个在一定范围的数,
例如:随机生成10个0~99的数:
复制代码 代码如下:

#include<stdio.h>
#include <iostream>

复制代码 代码如下:

int _tmain(int argc, _TCHAR* argv[])
{
     for(int x=0;x<10;x++)
           cout << rand()%100 << " ");
}

总之,产生a~b范围的随机数,可用: a+rand()%(b-a+1)
(3)但是上面两个例子多次运行的时候输出结果仍和第一次一样。这样的好处是便于调试,但失去了随机数的意义。如果想让每次运行产生不同的随机数,将用到srand()函数。 srand()用来设置rand()产生随机数时的随机数种子。在调用rand()函数产生随机数前,必须先利用srand()设好随机数种子(seed), 如果未设随机数种子, rand()在调用时会自动设随机数种子为1。上面的两个例子就是因为没有设置随机数种子,每次随机数种子都自动设成相同值1 ,进而导致rand()所产生的随机数值都一样。
srand()函数定义 : void srand (unsigned int seed);
通常可以利用geypid()或time(0)的返回值来当做seed
如果你用time(0)的话,要加入头文件#include<time.h>
例如:
复制代码 代码如下:

#include<stdio.h>
#include<time.h>                               
#include <iostream>
int _tmain(int argc, _TCHAR* argv[])
{
 srand((unsigned)time(NULL)); //srand((unsigned)time(0))   srand((int)time(0) 均可
for(int i=0;i<10;i++)
cout << rand() << endl;
}

这样每次运行的结果就会不一样了!!

相关文章

  • 详解QListWidget如何实现自定义Item效果

    详解QListWidget如何实现自定义Item效果

    这篇文章主要为大家介绍了如何通过QListWidget实现自定义Item效果,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起了解一下
    2022-04-04
  • C语言实现歌曲信息管理系统

    C语言实现歌曲信息管理系统

    这篇文章主要为大家详细介绍了C语言实现歌曲信息管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • C字符串函数对应的C++ string操作详解

    C字符串函数对应的C++ string操作详解

    在本篇文章里小编给大家整理的是一篇关于C字符串函数对应的C++ string操作知识点内容,有兴趣的朋友们学习下。
    2020-01-01
  • C语言中输入输出流与缓冲区的深入讲解

    C语言中输入输出流与缓冲区的深入讲解

    一般情况下,由键盘输入的字符并没有直接送入程序,而是被存储在一个缓冲区当中。下面这篇文章主要给大家介绍了关于C语言中输入输出流与缓冲区的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2018-09-09
  • QT实现贪吃蛇游戏代码详解

    QT实现贪吃蛇游戏代码详解

    本文主要为大家详细介绍了在QT中实现贪吃蛇游戏的详细教程,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • 关于C++内存中字节对齐问题的详细介绍

    关于C++内存中字节对齐问题的详细介绍

    本篇文章是对C++内存中字节对齐的问题进行了详细的分析与总结。需要的朋友参考下
    2013-05-05
  • 利用C语言实现经典游戏斗兽棋

    利用C语言实现经典游戏斗兽棋

    《斗兽棋》是一款棋类游戏,整个游戏画面是分为两块区域,中间有河流分割两块区域,有桥梁可以让彼此的动物过河,要取得胜利,必须占领那一边动物的巢穴获胜利。本文将用C语言实现这一游戏,需要的可以参考一下
    2022-03-03
  • C++11 学习笔记之std::function和bind绑定器

    C++11 学习笔记之std::function和bind绑定器

    这篇文章主要介绍了C++11 学习笔记之std::function和bind绑定器,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-07-07
  • C++动态内存分配(new/new[]和delete/delete[])详解

    C++动态内存分配(new/new[]和delete/delete[])详解

    这篇文章主要介绍了C++动态内存分配(new/new[]和delete/delete[])详解的相关资料,需要的朋友可以参考下
    2017-05-05
  • C语言实现数独小游戏

    C语言实现数独小游戏

    这篇文章主要为大家详细介绍了C语言实现数独小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03

最新评论