求excel高手详细解释这个函数,关于triangular distribution的 问题解决后会追加分数,万分感谢

a,m,b分别是最小值,众数和最大值

Function STriangular( m As Double ) As Double
Dim us As Double
us = Rnd()
If us < m Then

Else

End If
End Function
Function Triangular( a As Double, b As Double, m As Double ) As Double
Dim ms As Double
ms = (m - a) / (b - a)
Triangular = a + STriangular( ms ) * (b - a)
End Function

第1个回答  2012-10-01
第一个函数的功能:
输入一个数,和随机数比较,如果大于则……返回一个值;如果小于则……返回另一个值
如:STriangular(6.7)

Function STriangular( m As Double ) As Double
'其中Function 说明要自定义一个函数,函数名是STriangular,函数返回的是Double类型的数据,它的参数m也是Double类型。

Dim us As Double
'函数里的变量 us也是double型

us = Rnd()
’随机生成一个数赋值给us
If us < m Then ‘如果小于,则……返回一个值

Else ’如果大于等于则……返回一个值

End If ‘结束if
End Function ’结束函数

第二个函数:
这个函数会返回一个值,这个值就是在函数里的这句话:
Triangular = a + STriangular( ms ) * (b - a)

这个函数例子:Triangular(2.3,9.7,4)

Function Triangular( a As Double, b As Double, m As Double ) As Double
‘同第一个函数,自定义函数Triangular(a,b,m) 。函数返回一个double类型的数值,参数为a,b,c。。同为double型
Dim ms As Double ’定义变量ms,为double型
ms = (m - a) / (b - a) ‘给ms赋值公式计算的值
Triangular = a + STriangular( ms ) * (b - a) ’这句调用了第一函数,然后利用返回的值参与计算
End Function ‘函数结束

PS:这两个函数要在一个主函数中调用才会返回值。