问题描述
- 按照设定概率产生不重复随机数
-
有没有知道如何按照一定概率生成无重复数字,例如1 5% 2 4% 3 1% 4 15% 2 4% 3 1% 4 %10 5 7%%10 5 7%,从中随机不重复选出3个数,随机100000次,总体概率符合设计的随机要求。
可以设定概率值,然后从中随机数字,随机的三个数字不能有重复的,计算随机100000次后,每个数字的出现概率与设定的概率接近一致1 4.999% .....
解决方案
思路
产生一个0~1的浮点整数,它是均匀分布的,那么它小于0.05的概率就是5%。以此类推。
解决方案二:
如你例子所示,可以考虑使用:5(5%) 个 1、4 (4%)个 2、1(1%)个3 ... 组成一个数组,然后在此数组的基础上,再产生随机数,这样就可满足你的要求:按概率。
又要求无重复,则生成某个数后,可以参考将其从上述的数组中删除。
重复以上步骤,就可以完全东路你的要求。
解决方案三:
剔除后,显然概率不一致了呀????
时间: 2024-08-18 08:17:43