#include <stdio.h>
#include <time.h>
#include <dos.h>
/**
* f(n+1) = a * f(n)[1 - f(n)] f(n)在
*
*/
double initial() {
double init;
long temp;
struct tm * t;
while(1) {
temp = time(NULL);
t = gmtime(&temp);
init = t->tm_sec * 0.987654321*0.001;
if (init >= 0.001)
break;
}
return init;
}
double random(void) {
static double rdom = - 1.0;
if(rdom == -1.0) {
rdom = initial();
} else {
rdom = 3.80 * rdom * (1.0 - rdom);
}
return rdom;
}
int main(void) {
double result;
puts("*********************************************");
puts("| 生成一个随机数 |");
puts("| 输入'q' 退出 |");
puts("| 输入任意健来生成随机数 |");
puts("*********************************************");
while(1)
{
if(getchar()=='q')
break;
result = random();
printf ( "/n >> 生成的随机数为:%f/n",result );
}
return 0;
}
#include <time.h>
#include <dos.h>
/**
* f(n+1) = a * f(n)[1 - f(n)] f(n)在
*
*/
double initial() {
double init;
long temp;
struct tm * t;
while(1) {
temp = time(NULL);
t = gmtime(&temp);
init = t->tm_sec * 0.987654321*0.001;
if (init >= 0.001)
break;
}
return init;
}
double random(void) {
static double rdom = - 1.0;
if(rdom == -1.0) {
rdom = initial();
} else {
rdom = 3.80 * rdom * (1.0 - rdom);
}
return rdom;
}
int main(void) {
double result;
puts("*********************************************");
puts("| 生成一个随机数 |");
puts("| 输入'q' 退出 |");
puts("| 输入任意健来生成随机数 |");
puts("*********************************************");
while(1)
{
if(getchar()=='q')
break;
result = random();
printf ( "/n >> 生成的随机数为:%f/n",result );
}
return 0;
}
本文介绍了一个基于C语言实现的简单随机数生成器程序。该程序使用当前时间作为种子,并通过迭代公式f(n+1)=a*f(n)[1-f(n)]生成随机数。用户可以连续生成多个随机数,输入'q'退出程序。
3754

被折叠的 条评论
为什么被折叠?



