请问在VB中的随机数函数rnd用的是数学中的什么算法??
还有在Turbo C、VC中的随机数函数用的是什么算法??

解决方案 »

  1.   

    srand(time(0);
    int n = rand() % 100;100内的随即数
      

  2.   

    VC++中的源码:
    void __cdecl srand (
            unsigned int seed
            )
    {
    #ifdef _MT        _getptd()->_holdrand = (unsigned long)seed;#else  /* _MT */
            holdrand = (long)seed;
    #endif  /* _MT */
    }
    int __cdecl rand (
            void
            )
    {
    #ifdef _MT        _ptiddata ptd = _getptd();        return( ((ptd->_holdrand = ptd->_holdrand * 214013L
                + 2531011L) >> 16) & 0x7fff );#else  /* _MT */
            return(((holdrand = holdrand * 214013L + 2531011L) >> 16) & 0x7fff);
    #endif  /* _MT */
    }
      

  3.   

    #include<time.h>
    int a=srand((unsigned)time(NULL));
    a就是一个随机数
      

  4.   

    不是有人给vc++ 的原码了吗?
    其他语言的算法也类似。
        但他们都不能产生真正的随机数,除非需要有个随机的种子,例如,当前系统时间tick作为种子,已经是很随机的了,更好的如取芯片的某个电流噪声作为随机的种子。