作业帮 > 数学 > 作业

求算法公式:随机生成1-100,生成的数越大概率越小.

来源:学生作业帮 编辑:作业帮 分类:数学作业 时间:2024/05/23 19:26:52
求算法公式:随机生成1-100,生成的数越大概率越小.
求算法公式:
要求以生成数越大概率越小的原则,随机生成1-100之间的数.
像使用random(100)能生成1-100之间的数,但是每个数的概率是相同的,用什么公式才能让生成出来的数概率不同,数值越大,概率越小.
请详细一点儿,谢谢 .
你确定?
如果按这种细分,2的话不是要:random(1)+random(1)
得到每个数的概率还是一样啊。。
线性同余法(Linear Congruential Method)
目前使用的大多数随机数发生器是线性同余发生器,它是Lehmer于1951年提出的.
其通式为 Xi+1=(a*Xi+c)mod m
Ui+1=Xi+1/m 其中a为乘子(常数),C为增量(常数),X0为种子,m为模.
线性同余法有如下特点:
(1)0≤Xi≤m-1,即Xi只能从0,1,2,……,m-1这m个整数中取值;
(2)适当选择m,a,c,可使Xi产生循环,无论X0取何值,其循环顺序是相同的.其循环周期称为发生器周期,记为P.若p=m,则称该发生器具有满周期.
这样的方法生成的是伪随机数,因为数列的前驱和后继的相关的,他服从均匀分布.
你想要的是不服从均匀分布的随机数,可以对产生的随机数列进行非线性运算,就可以得到其他分布.工程上浮从各种分布的随机数都是这样产生的.
你可以用sqrt(random(10000))试试看.