作战2000论坛

标题: 替友人求助:语言大师乱入: [打印本页]

作者: 切特务    时间: 2007-4-28 00:06
标题: 替友人求助:语言大师乱入:
用C写一个simulator.主要是描述一个exponential distribution.- N- g7 w& R. u
方程是 x = -ln(y). y 是0到1之间的随机数.x在0到999,999之间指数分布.% y1 _  G0 O7 N( d7 m
* J6 r( d' F/ z$ x
我的问题是y需要用很小的数才能产生999,999或999,998之类的x分布.即使7 Z+ j  H. [. y- v+ H5 E5 b- R4 r
用double也无法区分两个很小的y.
' G0 z& _* [! x0 s9 g# @' a0 t: w) g
请问有什么好主意? C或C++下面都中
作者: fisher    时间: 2007-4-28 00:38
不好意思,我已经忘记怎么用C了!
作者: L.COMMANDER    时间: 2007-4-28 01:20
TUBRO C初学者并卡在数组和FOR循环的人飘过......
作者: jackey_cheung    时间: 2007-4-28 08:37
你个鸟人,别和我说这是供应链 的题目!!!) F4 \) y$ j/ [4 F
让你老婆自己回答,这个题 我以前做过。# T$ G3 b- D/ i. L, D5 O2 P
; A+ [  P1 D5 N" F

作者: 切特务    时间: 2007-4-28 09:05
我日,你丫胡扯个茄子。
4 i, x" U) ?( M0 K2 y' x* ^7 C3 w6 T! Z$ m: s0 f6 L
C#/C++ 里面, bigint/ bigdecimal 的数据类型,% j, P0 r6 z9 W2 \" t, B% A0 b

( k4 T" J) E6 V" \# `. Z, o8 j这实际上是要求随机数数目足够多。比如说,加入我们只有100个随机数,从1-100,那能达到的分辨率就只能是1/100。
0 Z7 e# T' J  W( O7 @1 D( _3 V3 h) ?) X0 B* i& `2 ^" m/ c
要求分辨率到1/e^999,999,这个数字多大呢,先算个小的,e^999,e^999=7.2x10^433,这就要求数字位数达到433位,保守一点,算e^999=10^433,有e^999,999=10^433000
/ p' K! a- c- l3 }4 m9 f1 W+ c
7 X! D3 S  R) K; K* x需要产生的随机数数量为10^433000个以上。这要求的是数字位数有433000位以上。如果单精度是8位(待查),的精度是五万倍以上精度。专门写个程序来实现。
" b$ U0 j1 x( u- b2 ]/ o( r- ^: |( l7 y
这跟共营链有个茄子关系? ( M" c% r& l3 o. i

0 R8 e; U4 n$ X: l; F( G0 R[ 本帖最后由 切特务 于 2007-4-28 09:10 编辑 ]
作者: freewarcraft    时间: 2007-4-28 12:13
LZ的意思是不是双精度浮点型变量的取值范围也无法满足需求?我记得VB里可以自定义变量类型的,C++里应该也可以吧,或者专门写一个函数生成y的值?7 z: Z3 M' i/ q- e' w( N5 C
建议上百度知道之类的搜索下,不是个很难的问题,虽然我不知道。。。
作者: 切特务    时间: 2007-4-28 12:32
原帖由 freewarcraft 于 2007-4-28 12:13 发表4 `4 P- c( Z6 V! ^5 I' f
LZ的意思是不是双精度浮点型变量的取值范围也无法满足需求?我记得VB里可以自定义变量类型的,C++里应该也可以吧,或者专门写一个函数生成y的值?0 h$ X- ]. z6 M; |
建议上百度知道之类的搜索下,不是个很难的问题,虽然我不知道 ...
! O6 [( `6 u% O2 H1 m

% Y$ d& v/ G- Y  j: W* Y& [- C
$ L4 C; B) n+ t
作者: Donitz    时间: 2007-4-29 23:15
C++……看到就头大的东西啊……继续钻研汇编了
作者: TNT老虎    时间: 2007-4-30 17:08
楼上这些可敬地兄弟,你们在说什么话题呀? 看了半天,不得要领!
作者: fisher    时间: 2007-5-1 01:05
楼上的,我们在讨论计算机汇编语言
作者: TNT老虎    时间: 2007-5-16 13:03
原来如此,我去搬个凳子,坐着听! 双脚离地。。。。。。^^!
作者: 三哥    时间: 2007-5-16 16:30
楼上的,建议你拿个大鼎听,有醍醐灌顶的作用。




欢迎光临 作战2000论坛 (http://www.combat2000.cn/) Powered by Discuz! X3.2