数字-按照设定概率产生不重复随机数

问题描述

按照设定概率产生不重复随机数

有没有知道如何按照一定概率生成无重复数字,例如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

数字-按照设定概率产生不重复随机数的相关文章

ASP生成随机数 ASP生成不重复随机数_应用技巧

ASP生成随机数: 复制代码 代码如下: Randomize '纯随机,不重复 Response.write Int((999999999 * Rnd) + 111111111) '生成111111111到999999999之间随机数 ASP不重复随机数: 方法一: 已测 使用的时候需要注意里面的分割字符串的字符. 复制代码 代码如下: <% '生成的是一个不重复的数组 Function GetRnd(lowerNum,upperNum) Dim unit,RndNum,Fun_X unit =

ASP生成随机数 ASP生成不重复随机数

ASP生成随机数: 复制代码 代码如下:Randomize '纯随机,不重复 Response.write Int((999999999 * Rnd) + 111111111) '生成111111111到999999999之间随机数 ASP不重复随机数: 方法一: 已测 使用的时候需要注意里面的分割字符串的字符.复制代码 代码如下: <% '生成的是一个不重复的数组 Function GetRnd(lowerNum,upperNum) Dim unit,RndNum,Fun_X unit = u

PHP产生不重复随机数的5个方法总结_php实例

无论是Web应用,还是WAP或者移动应用,随机数都有其用武之地.在最近接触的几个小项目中,我也经常需要和随机数或者随机数组打交道,所以,对于PHP如何产生不重复随机数常用的几种方法小结一下(ps:方法1.4.5是我常用的,其余来自网络整理) 方法一: 复制代码 代码如下: <?php $numbers = range (1,50); //shuffle 将数组顺序随即打乱 shuffle ($numbers); //array_slice 取该数组中的某一段 $num=6; $result =

PHP生成不重复随机数的方法汇总_php实例

无论是Web应用,还是WAP或者移动应用,随机数都有其用武之地.在最近接触的几个小项目中,我也经常需要和随机数或者随机数组打交道,所以,对于PHP如何产生不重复随机数常用的几种方法小结一下. 方法一: 复制代码 代码如下: <?php $numbers = range (1,50); //shuffle 将数组顺序随即打乱 shuffle ($numbers); //array_slice 取该数组中的某一段 $num=6; $result = array_slice($numbers,0,$n

link中如何设置随机数的概率?如何增加随机数的概率?代码怎么写?

问题描述 link中如何设置随机数的概率?如何增加随机数的概率?代码怎么写? link中如何设置随机数的概率?如何增加随机数的概率?代码怎么写? 解决方案 可以产生两个随机数,然后取平均值来改变概率

C#生成不重复随机数列表实例_C#教程

复制代码 代码如下: /// <summary>        /// 生成不重复随机数列表实例        /// </summary>        /// <param name="count">不重复数数量</param>        /// <returns>不重复数列表</returns>        private static List<int> GetRandomList(int

php生成不重复随机数、数组的4种方法分享_php技巧

下面写几种生成不重复随机数的方法,直接上代码吧 复制代码 代码如下: <?php define('RANDOM_MAX', 100); define('COUNT', 10); echo 'max random num: '.RANDOM_MAX, ' ;result count:'.COUNT, '<br/>'; invoke_entry('rand1'); invoke_entry('rand2'); invoke_entry('rand3'); invoke_entry('rand

再整理一个php 产生不重复随机数5个方法

无论是Web应用,还是WAP或者移动应用,随机数都有其用武之地.在最近接触的几个小项目中,我也经常需要和随机数或者随机数组打交道,所以,对于PHP如何产生不重复随机数常用的几种方法小结一下(ps:方法1.4.5是我常用的,其余来自网络整理) 方法一:  代码如下 复制代码 <?php $numbers = range (1,50); //shuffle 将数组顺序随即打乱 shuffle ($numbers); //array_slice 取该数组中的某一段 $num=6; $result =

100分、100分、求指定范围不重复随机数。

问题描述 500至69859415间,6000个不重复随机数.要求效率高一些.好了马上给分,在线等,20点前结贴. 解决方案 解决方案二:对了,我是用asp.net(C#)的,所以,要求是C#的.谢谢.解决方案三:随机生成后检测是否存在后,不存在就放入数组,存在就重来,解决方案四:好象只有楼上的办法现成的我就有java的没c#的没办法解决方案五:学习.解决方案六:mark解决方案七:Randomrand=newRandom();stringstrInt="";while(true){i