随机数生成器

利用迭代法产生随机数


  /*============================================================================
 Name        : Exercise.c
 Author      : Haier
 Version     : 1.01
 Copyright   : Copyright (c) 2014
 Description : Random number generator in C, Compile by Code:Block
 ============================================================================ */

#include <stdio.h>
#include <sys/timeb.h>
#define Alpha (3.90)

/****************************************************************************
* Function     : InitialRandomSeed
* Description  : Initialize Random Seed
* Input        : void
* Return       : Random Seed
*****************************************************************************/
double InitialRandomSeed()
{
    double RandSeed;
    struct timeb TimebPtr;

    ftime(&TimebPtr);
    RandSeed=TimebPtr.millitm*0.9876543*0.001;

    return RandSeed;
}
/****************************************************************************
* Function     : random
* Description  : Generator Random
* Input        : void
* Return       : Rand Number
*****************************************************************************/
double random()
{

    static double RandNum=-1.0;

    if(RandNum==-1.0)
    {
        RandNum=InitialRandomSeed();
    }
    else
    {
        RandNum=Alpha*RandNum*(1.0-RandNum);
    }

    return RandNum;
}

int main()
{
    int i;
    double randNum;

    printf("%lf\n",randNum=random());
    
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值