zoukankan      html  css  js  c++  java
  • srand随机数

    在看AMCL源码中,发现srand函数

    srand48(time(NULL));

    表示根据当前系统时间,获取48位运算随机数

    需要的头文件

    #include <stdlib.h>
    #include <time.h>

    [此处内容转自https://blog.csdn.net/cnmilan/article/details/7103786] 

    srand()用来设置rand()产生随机数时的随机数种子。

    定义函数:void srand (unsigned int seed);

    参数seed必须是个整数,通常可以利用geypid()或time(0)的返回值来当做seed。如果每次seed都设相同值,rand()所产生的随机数值每次就会一样。

    srand48()——获取48位运算随机数(数据类型:double);

    time(0)——获取当前时间(long);

    getpid()——获取当前进程识别码(long);

    srand48(time(0) ^ getpid())就是产生一个48位种子随机数。该随机函数的种子参数是time(0) ^ getpid(),即:系统时间(从某个时间到现存的秒数,类型为long)的当前进程识别码次方。
    这个函数在UNIX系统的C、C++中存在。WINDOWS中一般不用(VC++不用)。例如当前时间为10E30秒,当前进程为100,上述式子相当于windows 下的rand(10E30*100)=rand(10E32)。
    返回值,一般赋给编程人员要用的变量,或直接作为参数传递给另一个函数。

  • 相关阅读:
    logback学习二
    logback学习
    弱类型、强类型、动态类型、静态类型语言的区别
    BlockingQueue
    ExecutorService
    Future学习
    SetTimeout()多次运行函数后越来越快的问题
    LISTAGG函数
    Oracle字段
    使用powerdesigner进行数据库设计
  • 原文地址:https://www.cnblogs.com/havain/p/15009945.html
Copyright © 2011-2022 走看看