|
楼主 |
发表于 2009-10-17 21:23:11
|
显示全部楼层
第一章:一些数学函数的其他实现方法
函数名称 | 函数说明 | 实现方法 | max(a,b) | 取a和b中的较大者
| max(A,B)=(A+B+|A-B|)/2 | max(a,b,c) | 取a,b,c中最大者 | max(a,b,c)=max(a,max(b,c)) | min(a,b)
| 取a和b中的较小者 | min(A,B)=(A+B-|A-B|)/2 | min(a,b,c)
| 取a,b,c中最小者 | min(a,b,c)=min(a,min(b,c)) | sgn(x) | 当x为正数时sgn(x)为1,当x为负数时sgn(x)为-1,当x=0时sgn(x)=0。注意不适合绝对值小于10^-85的数 | sgn(X)=X/(|X|+1*10^-99) | sgnerr(x) | 当x为正数时sgnerr(x)为1,当x为负数时sgnerr(x)为-1,当x=0时出现Math Error | sgnerr(X)=X/|X| | ispositive(x) | 当x为正数时ispositive(x)为1,当x为负数或零时ispositive(x)为0 | ispositive(x)=max(0,sgn(x)) | isnotnegative(x) | 当x为正数或0时isnotnegative(x)为1,当x为负数时isnotnegative(x)为0 | isnotnegative(x)=min(0,sgn(x))+1 | int(x) | 取x的整数部分,只适用于非负数 | int(X)=(1+X*10^-14-1)*10^14 | frac(x) | 取x的小数部分 | frac(x)=x-int(x) | RanInt(A,B) | 产生从A(包含)到B(不含)的随机整数 | RandInt(A,B)=A+int(Ran#*(B-A)) | 待补充 | | |
|
|