随机数算法

王朝other·作者佚名  2008-06-01
窄屏简体版  字體: |||超大  

/*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;

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航