小弟学php不久,现在在看人家写的程序
看到一段:
srand((double)microtime()*1000000);$randval = rand(0,1);这两句都有什么作用?

解决方案 »

  1.   

    srand((double)microtime()*1000000);//播下随机数发生器种子$randval = rand(0,1);//产生0到1之间的随机数 这里即 0或者1
      

  2.   

    二楼,不好意思,我才没学多少天。
    srand((double)microtime()*1000000);//播下随机数发生器种子
    能不能再通俗一点呢?
    这个语句有什么实际用途?
    多用于什么情况呢?
      

  3.   

    php 4.2后就不需要手动调用srand了。直接使用rand即可。
    关于 srand怎么说呢,
    计算机的随机算法其实被称为伪随机算法,1.计算机的伪随机数是由随机种子根据一定的计算方法计算出来的数值。所以,只要计算方法一定,随机种子一定,那么产生的随机数就是固定的。
    2.只要用户或第三方不设置随机种子,那么在默认情况下随机种子来自系统时钟。为了保证这个产生随机数的随机性,我们人为地为这个随机数种子取值,也就是调用 srand这个函数。
    看一段代码://rand01.c
    #include
    static unsigned int RAND_SEED;
    unsigned int random(void)
    {
    RAND_SEED=(RAND_SEED*123+59)%65536;
    return(RAND_SEED);
    }
    void random_start(void)
    {
    int temp[2];
    movedata(0x0040,0x006c,FP_SEG(temp),FP_OFF(temp),4);
    RAND_SEED=temp[0];
    }
    main()
    {
    unsigned int i,n;
    random_start();
    for(i=0;i<10;i++)
    printf("%u\t",random());
    printf("\n");

    这里 random_start()对应于srand函数。当然这段代码种子值通过主板上的定时/计数器在内存中的值来实现这一算法,很漂亮。
      

  4.   

    srand((double)microtime()*1000000);//播下随机数发生器种子microtime() 取得很细的时间值。再转成 double 类型变量。,再变大 1000000倍。
    在 1 到 上面的数之间取值。一个整数。
    就是随机数了。
      

  5.   

    各位,在下深表感激。特别是rayhome1987