请教算法(30分)

  • 主题发起人 主题发起人 ahxia
  • 开始时间 开始时间
A

ahxia

Unregistered / Unconfirmed
GUEST, unregistred user!
有一个公式,算话务量的(Erlang),公式本身如下:
B = (A^n / n!) / (1 + A/1! + A^2/2! + ... + A^n/n!)
其中的B就是呼损,在(0,1)开区间之内;
A是话务量,就当在(0,+∞)之间好了;
n是用户数,是自然数。
关键在于怎样才能尽量扩大A和n的输入范围。
现在A,n是用double定义的 :)
 
哇塞, 直接找数学软件吧,
 
什么叫做“怎样才能尽量扩大A和n的输入范围”?
 
他意思大概是double型精度还不够,表达的数的范围有限。
那何不自己模拟数的运算规则?定义一个足够长度的数组,定义其运算规则,
不就行了?
 
用数组进行高精度运算
 
用数组?会太慢吧,这个公式的主要用处是已知B,求n或者A,
尤其是求A的时候,我用2分法去找(忘记牛顿叠代法怎么做了:(...)
用数组求 A^n 和 n! 是不是接近死机?
我想简单一点,用‘规一化’的办法算了,就是例如n! := 2.34*10^19,
那我就用 na := 2.34, ni := 19,以后运算的时候就先处理 ni 这样的
指数,大概不会溢出了,但是不知道误差扩散会影响多少位??
 
提前一下,没有喜欢研究算法的么? wuwuwu, 哭好了
 
多人接受答案了。
 
后退
顶部