如果您想要线性下降,您所描述的内容称为triangle(或三角形)分布。如果U
是[0,1)
范围内均匀分布的随机数的来源,则可以使用以下内容[a,b)
生成范围为a
的三角形:
def triangle(a,b)
return a + (b-a)*(1 - sqrt(U))
end
这可以通过编写指定范围的三角形方程,对其进行缩放以使其具有区域1以使其成为有效density,进行积分以获得CDF并使用{ {3}}
有趣的是,如果a >= b
,这仍然有用。为了平等,你总是得到a
(如果范围为零则有意义)。否则,您会得到一个从b
到a
的三角形,其模式为a
。