社区
数据结构与算法
帖子详情
计算概率算法
wwy12321
2012-03-15 05:03:23
比如我有一个数组,数组长度是n,数组里包含一个字母和它出现的概率,比如A出现的概率是0.12,B出现的概率是0.023,C出现的概率是0.38,现在我想根据这些概率从这个长度为n的数组里随机取出m个数,当然概率越大的出现的几率越高。
...全文
192
10
打赏
收藏
计算概率算法
比如我有一个数组,数组长度是n,数组里包含一个字母和它出现的概率,比如A出现的概率是0.12,B出现的概率是0.023,C出现的概率是0.38,现在我想根据这些概率从这个长度为n的数组里随机取出m个数,当然概率越大的出现的几率越高。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
DeDeWo
2012-03-20
打赏
举报
回复
lz想表达啥意思?
欢乐的小猪
2012-03-19
打赏
举报
回复
设数的概率分别是 A1,A2..An
那么第k个数的概率分布区间为 Sum(A1~Ak-1)到 Sum(A1~Ak)
每次生成一个0 ~ Sum(A1~An) 的随机数,看这个数在哪个区间,就取哪个数,取m次就可以
[Quote=引用 6 楼 hbu_pig 的回复:]
设数的概率分别是 A1,A2..An
那么第k个数的概率分布区间为 Sum(A1~Ak-1)到 Sum(A1~Ak)
每次生成一个0 ~ Sum(A1~Ak) 的随机数,看这个数在哪个区间,就取哪个数,取m次就可以
[/Quote]
欢乐的小猪
2012-03-19
打赏
举报
回复
设数的概率分别是 A1,A2..An
那么第k个数的概率分布区间为 Sum(A1~Ak-1)到 Sum(A1~Ak)
每次生成一个0 ~ Sum(A1~Ak) 的随机数,看这个数在哪个区间,就取哪个数,取m次就可以
弦率
2012-03-19
打赏
举报
回复
比选择题的abcd的乱序排列要麻烦
弦率
2012-03-19
打赏
举报
回复
学习了,这个是双色球吧??
ozy2008
2012-03-16
打赏
举报
回复
设数的概率分别是 A1,A2..An
那么第k个数的概率分布区间为 Sum(A1~Ak-1)到 Sum(A1~Ak)
每次生成一个0 ~ 1 随机数,看这个数在哪个区间,就取哪个数,取m次就可以
wwy12321
2012-03-16
打赏
举报
回复
都给分
一条大红龙
2012-03-15
打赏
举报
回复
参考2楼大哥的思路,弄了个代码,我没用数组,感觉用数组的List要好操作一点吧。
package test;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class TestRandom {
public static void main(String[] args) {
List<Object[]> objectList = new ArrayList<Object[]>();
Random rand = new Random();
List<String> selectedLettr = new ArrayList<String>();
//概率的标尺,如果你的概率的小数位后有n位,则可以定位为(1*10的n次方-1)
//此例我用1位
int maxNum = 99;
//要取出的数目
int selectNum = 2;
//此处list的长度为3
Object[] objects = {"a", 0.4};
objectList.add(objects);
Object[] objects1 = {"b", 0.2};
objectList.add(objects1);
Object[] objects2 = {"c", 0.4};
objectList.add(objects2);
for (int i = 0; i < selectNum; i++) {
int rateNum = rand.nextInt(maxNum);
if (rateNum >= 0 && rateNum <= 39) {
selectedLettr.add((String)objectList.get(0)[0]);
} else if (rateNum >= 40 && rateNum <= 59) {
selectedLettr.add((String)objectList.get(1)[0]);
} else {
selectedLettr.add((String)objectList.get(2)[0]);
}
}
for (String str:selectedLettr) {
System.out.println(str);
}
}
}
昵称很不好取
2012-03-15
打赏
举报
回复
弄个随机数就好了,比如有三个数:
A概率为0.12
B概率为0.23
C概率为0.65
要根据他们的概率取出它们,可以得到一个在1-100之间的随机数n,如果1<=n<=12则选择A,如果13<=n<=35则选择B,如果36<=n<=100,则选择C,符合各自的概率分布
概率
算法
概率
算法
允许
算法
在执行过程中随机地选择下一个
计算
步骤。 二、优点
算法
在执行过程中面临选择时,随机性选择比最优选择省时,因此
概率
算法
可以在很大程度上降低
算法
的复杂度。 三、基本特征 对所求解问题的同一...
如何用
计算
机
计算
概率
,
概率
统计
计算
概率
统计
计算
,又称
计算
概率
统计,是
概率
论、数理统计、
计算
数学和
计算
机科学等学科之间的一个交叉性、边缘性、应用性的学科分支。中文名
概率
统计
计算
外文名The calculation of probability and statistics又称
计算
...
概率
算法
(随机化
算法
)
概率
算法
允许
算法
在执行过程中随机地选择下一个
计算
步骤。在很多情况下,
算法
在执行过程中面临选择时,随机性选择比最优选择省时,因此
概率
算法
可以在很大程度上降低
算法
的复杂度。
概率
算法
的一个基本特征是对所求解...
matlab中
概率
的
计算
,
计算
机模拟
计算
概率
-基于matlab
有很多
概率
问题难以
计算
,用
计算
计模拟的方法
计算
概率
在数学建模和实际工作生活中有实际意义。下例基于matlab软件,用
计算
机模拟的方法
计算
出一个随机变量的分布。例:设Xi(i=1,2,...,7)相互独立,取值都为0,1,2,3...
【基本
算法
】
概率
算法
概率
算法
依照
概率
统计的思想来求解问题,其往往不能得到问题的精确解,但是在数值
计算
领域得到了广泛的应用。因为很多数学问题,往往没有或者很难
计算
解析,此时便需要通过数值
计算
来求解近似值。
概率
算法
执行的基本...
数据结构与算法
33,008
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章