当前位置: 代码迷 >> C语言 >> [求助]求教一个简单的C问题
  详细解决方案

[求助]求教一个简单的C问题

热度:280   发布时间:2006-05-02 22:35:00.0
[求助]求教一个简单的C问题
本人是C新手,想请教各位高手一个简单的C程序问题.

比如:
Num_1=%d
Num_2=%d
Num_1=在区间[-10,10]均匀分布
Num_2=1/3概率 0
1/3概率 在区间[-10,-1]指数分布
1/3概率 在区间[1,10]指数分布
然后随机生成N次Num_1和Num_2

如何用C程序表达呢?

我想表达的意思是:

Num_1Num_2210进制的整数

Num_1的取值在区间[-1010]内,呈现均匀分布

Num_2的取值在区间[-1010]内,有3种情况

1/3概率 值为0

1/3概率 取值在区间[-10-1]内,呈现指数分布

1/3概率 取值在区间[110]内,呈现指数分布

然后随机生成NNum_1Num_2的有效取值.

我已经附加了指数分布的公式图片,请高人帮我分析一下啊!

请各位高人赐教,不胜感激.
谢谢了.

[此贴子已经被作者于2006-5-3 21:07:06编辑过]

搜索更多相关的解决方案: Num  Roman  New  

----------------解决方案--------------------------------------------------------
没看懂
----------------解决方案--------------------------------------------------------
概率问题不太懂,这个也没有看懂

----------------解决方案--------------------------------------------------------

去看看这个

http://www.vckbase.com/document/viewdoc/?id=1424


----------------解决方案--------------------------------------------------------
回复:(flamefairy)[求助]求教一个简单的C问题
以下是引用flamefairy在2006-5-2 22:35:00的发言:
本人是C新手,想请教一个C程序问题.
比如:
Num_1=%d
Num_2=%d
Num_1=在区间[-10,10]均匀分布
Num_2=1/3概率 0
1/3概率 在区间[-10,-1]指数分布
1/3概率 在区间[1,10]指数分布
然后随机生成N次Num_1和Num_2

又一个不善发问的。作为“新手”最好不要指望一口吃成个胖子。

下面我代LZ发第一个问题吧:
Num_1是落在闭区间[-10,10]上的整数,怎样等概率地生成N个Num_1的值?

至于LZ的第二个问题,似乎应给出概率密度函数哦。


----------------解决方案--------------------------------------------------------
以下是引用flamefairy在2006-5-2 22:35:00的发言:
本人是C新手,想请教各位高手一个简单的C程序问题.

比如:
Num_1=%d
Num_2=%d
Num_1=在区间[-10,10]均匀分布
Num_2=1/3概率 0
1/3概率 在区间[-10,-1]指数分布
1/3概率 在区间[1,10]指数分布
然后随机生成N次Num_1和Num_2

如何用C程序表达呢?

请各位高人赐教,不胜感激.
谢谢了.

你看这样可以不?由于rand函数是均匀分布的函数,
Num_1=rand()%21-10;
Num_2=1/3*((int)exp(rand())%10-10+(int)exp(rand())%10+1);


----------------解决方案--------------------------------------------------------
以下是引用soft_wind在2006-5-3 8:46:00的发言:

你看这样可以不?由于rand函数是均匀分布的函数,
Num_1=rand()%21-10;
Num_2=1/3*((int)exp(rand())%10-10+(int)exp(rand())%10+1);

1/3*((int……犯低级错误啦。1/3==0也!


----------------解决方案--------------------------------------------------------

呵呵,楼上的说得是.谢谢提醒。
Num_2=(int)1.0/3*((int)exp(rand())%10-10+(int)exp(rand())%10+1);


----------------解决方案--------------------------------------------------------

谢谢各位热心的朋友啊.


----------------解决方案--------------------------------------------------------

没有解决啊,我还是不知道怎么表达指数分布的Num_2,特别是概率和取值区间的问题.但是确实很感谢你们这些热心的朋友.有人可以给我一些更明确的指点吗?


----------------解决方案--------------------------------------------------------
  相关解决方案