• 随机数的生成


    随机数经常在粒子系统中得到使用;今天将之弄明白了;整理如下。

    /*
    本例主要说明随机数的产生以及使用:
    srand函数是随机数发生器的初始化函数。原型:void srand(unsigned int seed);
    srand和rand()配合使用产生伪随机数序列。rand函数在产生随机数前,需要系统提供的生成伪随机数序列的种子,
    rand根据这个种子的值产生一系列随机数。如果系统提供的种子没有变化,每次调用rand函数生成的伪随机数序列都
    是一样的。srand(unsigned seed)通过参数seed改变系统提供的种子值,从而可以使得每次调用rand函数生成的伪随
    序列不同,从而实现真正意义上的“随机”。通常可以利用系统时间来改变系统的种子值,即srand(time(NULL)),可以
    为rand函数提供不同的种子值,进而产生不同的随机数序列
    这个随机数种子也可以选择手动输入
    */
    /*
    简而言之,生成的数表面上看是随机的,其实并不随机;若不提供这个种子,则每次生成的值都是相同的;根据time()
    提供的数字;则可以看做是随机的
    */

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

    int main(void)
    {
    int i, number;

    srand(time(NULL));
    for (i=0; i<50; i++)
    {
    number = rand()%101;
    printf("%d ", number);
    }
    return 0;
    }

    刚开始学习时;对代码中的time(NULL)比较迷惑;顺便也将它相关的内容放在这里:

    /*
    本例是关于time()这个函数一些说明
    定义:time() 是指返回自 Unix 纪元(January 1 1970 00:00:00 GMT)起的当前时间的秒数的函数(即从1970年
    起到当前时间的秒数)
    函数原型:time_t time(time_t *t);
    如果t是空指针,直接返回当前时间。如果t不是空指针,返回当前时间的同时,将返回值赋予t指向的内存空间。
    */
    /*本程序主要用来获取从1970年到如今的秒数,并且将这个数字换算为当前时间(没有年)*/
    #include<stdio.h>
    #include<stdlib.h>
    #include<time.h>

    #define Day (24*3600)
    #define Hour 3600
    #define Minute 60

    int main(void)
    {
    time_t t;
    int hour, minute, second;
    long hms;
    int ms;

    // t = time(NULL);//time()的参数为空,返回当前时间
    time (&t);//time()的参数不为空,则首先返回当前时间,并且将这个秒数存放到&t这个内存中
    printf("%ld ", t);

    hms = t%Day;//(若t/Day,则得到天数;若取余,则得到小时和分钟和秒的总秒数)
    hour = hms/Hour;
    ms = hms%Hour;
    minute = ms/Minute;
    second = ms % Minute;
    printf("%d : %d : %d", hour, minute, second);

    return 0;
    }

    /*注意:本程序最后输出的时间是标准时间;由于我们使用东8区的时间;因此,应该将程序中的时间加上8;即可得到北京时间*/

    将程序复制到VC下运行,你就会明白究竟是怎么一回事。

  • 相关阅读:
    Json对象与Json字符串互转(4种转换方式)
    Web.config配置文件详解
    jQuery BlockUI Plugin Demo 6(Options)
    jQuery BlockUI Plugin Demo 5(Simple Modal Dialog Example)
    jQuery BlockUI Plugin Demo 4(Element Blocking Examples)
    jQuery BlockUI Plugin Demo 3(Page Blocking Examples)
    jQuery BlockUI Plugin Demo 2
    <configSections> 位置引起的错误
    关于jQuery的cookies插件2.2.0版设置过期时间的说明
    jQuery插件—获取URL参数
  • 原文地址:https://www.cnblogs.com/zsw-1993/p/5408407.html
Copyright © 2020-2023  润新知