当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>C++基础入门教程

随机数算法

/*1.从同一个种子开始*/
    #include <stdio.h>
    #include <conio.h>
    static unsigned long int next=1;

    int rand0(void)
    {
    next=next*1103515245+12345;
    return (unsigned int)(next/65536)%32768;
    }

    int main(void)
    {
    int count;

    for(count=0;count<5;count++)
       printf("%hd\n",rand0());
    getch();
    return 0;
    }

    /*2.重置种子*/
    #include <stdio.h>
    #include <conio.h>
    static unsigned long int next=1;

    int rand1(void)
    {
    next=next*1103515245+12345;
    return (unsigned int)(next/65536)%32768;
    }

    void srand1(unsigned int seed)
    {
    next=seed;
    }

    int main(void)
    {
    int count;
    unsigned int seed;

    printf("please input seed:");
    scanf("%u",&seed);
    srand1(seed);
    for(count=0;count<5;count++)
       printf("%hd\n",rand1());
    getch();
    return 0;
    }

    /*3.利用利用时钟产生种子
    ANSI C程序库提供了rand()函数来产生随机数;
    ANSI C程序库提供了srand()函数来产生种子;
    ANSI C程序库提供了time()函数返回系统时间。
    */
    #include <time.h>
    #include <stdio.h>
    #include <dos.h>
    #include <conio.h>
    #include <stdlib.h>

    int main(void)

    {
      int i;
      time_t t;
      clrscr();
      t = time(NULL);
      srand((unsigned) t);
      for(i=0; i<10; i++) printf("%d\n", rand()%10);
      getch();
      return 0;
    }


 

相关内容
赞助商链接