[php][随机数]曲线式的随机

数学函数原型:

y = max / (x ^ 2)

函数图像(来自google):

y = 100 / x ^ (-2)

其中y为随机结果,max为最大值且max>1,x为随机数,

两个参数:

int min,max

max_x = sqlt(max / min)

x的范围为[1, max_x]

为了扩大x的取值范围这样做,

把x的取值范围扩大times倍,随机出x然后再缩小times倍

times = (max - min) * 100

float rand_x

rand_x = rand(times, max_x * times) / times

然后就是代入求值了,得出随即结果并根据实际情况进行取整.

原文地址:https://www.cnblogs.com/imoing/p/3373519.html