zoukankan      html  css  js  c++  java
  • C/C++语言中让电脑随机的在某个范围中的任一随机数

    这是我在笔试中碰见的一题中一部分,这就就记录下来。举例,输出[1,3]中任一随机数。

     1 #include<iostream>
     2 #include<cstdlib>
     3 #include<cstdio>
     4 #include<ctime>
     5 
     6 
     7 int main()
     8 {
     9     srand((unsigned)time(NULL));
    10 
    11     int val = 0;
    12     for (int i = 0;i < 50;i++)
    13     {
    14         val = (rand() % 3) + 1;
    15         std::cout << i + 1 << " " << val << std::endl;
    16     }
    17     return 0;
    18 }

    代码中第九行是什么意思?

    在C语言中,rand()函数可以用来产生随机数,但是这不是真正意义上的随机数,是一个伪随机数,是根据一个数,我们可以称它为种子,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非你破坏了系统,为了改变这个种子的值,C提供了srand()函数,它的原形是void srand( int a)

    1)首先给srand()提供一个种子,它是一个unsigned int类型,其取值范围从0~65535;

    2)然后调用rand(),它会根据提供给srand()的种子值返回一个随机数(在0到32767之间)

    归纳:要取得[a,b)之间的随机整数,使用(rand() % (b-a))+ a 或者(rand() * (b-a)) / RAND_MAX + a

    Ref:

    http://blog.csdn.net/qin_zhangyongheng/article/details/8033936

  • 相关阅读:
    题解 【洛谷】AT654
    题解【洛谷】CF134A
    jquery中select的应用
    Linq to xml 小例
    mongodb 使用场景和不使用场景
    一个面试题的解答-----从500(Id不连续)道试题库里随机抽取20道题!
    数据采集
    50款强力jquey,js 插件推荐
    node.js 学习
    wcf好文集合
  • 原文地址:https://www.cnblogs.com/love-yh/p/7663510.html
Copyright © 2011-2022 走看看