| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 739 人关注过本帖
标题:产生随机数 满足指数分布的[M,N]区间随机数,其中 M,N 是正整数。
只看楼主 加入收藏
我是会飞的鱼
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2014-11-5
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:4 
产生随机数 满足指数分布的[M,N]区间随机数,其中 M,N 是正整数。
产生随机数 满足指数分布的[M,N]区间随机数,其中M,N是正整数。解题思路
搜索更多相关主题的帖子: 正整数 
2014-11-09 18:44
soulmate1023
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:256
专家分:831
注 册:2014-9-23
收藏
得分:5 
不太会,帮顶
2014-11-09 19:03
hackrol
Rank: 4
来 自:世界和平组织
等 级:业余侠客
帖 子:62
专家分:267
注 册:2014-9-6
收藏
得分:5 
rand()%(N-M+1)+M
2014-11-09 22:06
蓝儿木
Rank: 1
等 级:新手上路
帖 子:14
专家分:5
注 册:2014-11-4
收藏
得分:5 
回复 3 楼 hackrol
这个是什么意思?
2014-11-10 12:28
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9031
专家分:54061
注 册:2011-1-18
收藏
得分:5 
“其中M,N是正整数” --- 这个和你的问题有什么关系?

C没有这样的标准函数,但C++有,先看看C++是怎么做的,参考:
http://www.
然后,根据C++源代码将之改为C代码(以下是我粗略看了一下C++源代码后改的,公式可能有误,你自己去检查吧,我只提供解决问题的思路)
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{
    double lambda = 3.5;

    const int nrolls     = 10000;  // number of experiments
    const int nstars     = 100;    // maximum number of stars to distribute
    #define nintervals    10        // number of intervals

    int p[nintervals] = { 0 };
    for( int i=0; i<nrolls; ++i )
    {
        double number = (-log(1 -  rand()/(RAND_MAX+1.0)) / lambda);
        if (number<1.0)
            ++p[(int)(nintervals*number)];
    }

    for( int i=0; i<nintervals; ++i )
    {
        printf( "%.1f-%.1f: ", (float)(i)/nintervals, (float)(i+1)/nintervals );
        for( int j=0; j!=p[i]*nstars/nrolls; ++j )
            putchar( '*' );
        putchar( '\n' );
    }

    #undef nintervals
    return 0;
}
输出
程序代码:
0.0-0.1: *****************************
0.1-0.2: ********************
0.2-0.3: ***************
0.3-0.4: **********
0.4-0.5: *******
0.5-0.6: *****
0.6-0.7: ***
0.7-0.8: **
0.8-0.9: *
0.9-1.0: *

2014-11-10 14:00
快速回复:产生随机数 满足指数分布的[M,N]区间随机数,其中 M,N 是正整数。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.111233 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved