zoukankan      html  css  js  c++  java
  • c产生随机数(含时间种子)

    有时候我们需要程序产生一个随机数.

    可以用rand()

    但是其实这个随机数是伪随机数,它是一个周期很长的一个值而已.

    所以我们可以加入一个随机数种子srand(),这个可以取以当前时间为基准的一个值.

     1 #include <stdlib.h> 
     2   #include <stdio.h> 
     3   #include <time.h> 
     4   main() 
     5   { 
     6     int i,k;
     7    srand( (unsigned)time( NULL ) ); 
     8    for( i = 0; i < 10;i++ ) 
     9   { 
    10      k=rand()%100+1;   //rand()%100表示取100以内的随机数,  由于rand产生的随机数是0到rand_max,而rand_max是一个很大的数,那么要产生一个从X到Y的随机数,x=rand()%(Y-X+1)+X 
    11      printf( " k=%d
    ", k ); 
    12   } 
    13 }

    然后可以看一下我这里出的结果

     1 k=18
     2  k=62
     3  k=97
     4  k=28
     5  k=85
     6  k=97
     7  k=99
     8  k=47
     9  k=35
    10  k=59

    其实如果把srand去掉,可以发现也会产生一些随机数,只不过每次运行产生的随机数都是一样的.

    那是因为你不设定种子,每次默认的种子都是1.

    但是加上以后,就感觉比较随机了,每次都是不一样的.

  • 相关阅读:
    IDA*算法
    智能指针
    C51模拟I2C,音乐播放(记忆)
    类与对象解剖(虚函数)
    MFC类层次结构
    平面几何
    IDAstar搜索
    MFC程序初始化过程
    放苹果 分治法
    【读后感】编程珠玑 第九章 代码调优
  • 原文地址:https://www.cnblogs.com/zhmlzhml/p/12506812.html
Copyright © 2011-2022 走看看