黑马程序员技术交流社区
标题:
求个算法
[打印本页]
作者:
何祥旺
时间:
2012-5-15 18:37
标题:
求个算法
从1-15数中,随机不放回取5个数,求取的5个数的和的所有可能值的概率的算法!
作者:
寇龙飞
时间:
2012-8-2 23:15
令人头疼
作者:
寇龙飞
时间:
2012-9-14 21:50
package com.itheima.test;
import java.util.HashSet;
/*从1-15数中,随机不放回取5个数,求取的5个数的和的所有可能值的概率的算法!*/
/*分析:和的所有可能值为区间1+2+3+4+5到15+14+13+12+11*/
/*利用HashSet存储元素不重复特性,判断五个数两两互不相等*/
public class ConsoleTest {
public static void main(String[] args) {
int minLen = 1+2+3+4+5 +1-1;
int maxLen = 15+14+13+12+11 + 1;
int[] arr = new int[maxLen];
int sum = 0;
HashSet<Integer> set = new HashSet<Integer>();
for(int i=1; i<=15; i++) {
for(int j=1; j<=15; j++) {
for(int k=1; k<=15; k++) {
for(int m=1; m<=15; m++) {
for(int n=1; n<=15; n++) {
/*判断五个变量是否两两不等这里,貌似比较丑*/
set.add(i);
set.add(j);
set.add(k);
set.add(m);
set.add(n);
if(set.size()==5)
arr[i+j+k+m+n]++;
set.clear();
}
}
}
}
}
for(int i=minLen; i<maxLen; i++) {
sum += arr[i];
}
System.out.println("所有可能值出现的次数为:" + sum);
for(int i=minLen; i<maxLen; i++) {
System.out.println(i + "出现的次数为"+ arr[i]+",\t概率为:" + arr[i]/(double)sum);
}
}
}
复制代码
运行结果:
所有可能值出现的次数为:360360
15出现的次数为120, 概率为:3.33000333000333E-4
16出现的次数为120, 概率为:3.33000333000333E-4
17出现的次数为240, 概率为:6.66000666000666E-4
18出现的次数为360, 概率为:9.99000999000999E-4
19出现的次数为600, 概率为:0.001665001665001665
20出现的次数为840, 概率为:0.002331002331002331
21出现的次数为1200, 概率为:0.00333000333000333
22出现的次数为1560, 概率为:0.004329004329004329
23出现的次数为2160, 概率为:0.005994005994005994
24出现的次数为2760, 概率为:0.007659007659007659
25出现的次数为3600, 概率为:0.00999000999000999
26出现的次数为4320, 概率为:0.011988011988011988
27出现的次数为5400, 概率为:0.014985014985014986
28出现的次数为6360, 概率为:0.017649017649017648
29出现的次数为7560, 概率为:0.02097902097902098
30出现的次数为8640, 概率为:0.023976023976023976
31出现的次数为9960, 概率为:0.02763902763902764
32出现的次数为11040, 概率为:0.030636030636030636
33出现的次数为12360, 概率为:0.034299034299034296
34出现的次数为13320, 概率为:0.03696303696303696
35出现的次数为14520, 概率为:0.040293040293040296
36出现的次数为15240, 概率为:0.04229104229104229
37出现的次数为16080, 概率为:0.044622044622044624
38出现的次数为16440, 概率为:0.045621045621045624
39出现的次数为16920, 概率为:0.04695304695304695
40出现的次数为16920, 概率为:0.04695304695304695
41出现的次数为16920, 概率为:0.04695304695304695
42出现的次数为16440, 概率为:0.045621045621045624
43出现的次数为16080, 概率为:0.044622044622044624
44出现的次数为15240, 概率为:0.04229104229104229
45出现的次数为14520, 概率为:0.040293040293040296
46出现的次数为13320, 概率为:0.03696303696303696
47出现的次数为12360, 概率为:0.034299034299034296
48出现的次数为11040, 概率为:0.030636030636030636
49出现的次数为9960, 概率为:0.02763902763902764
50出现的次数为8640, 概率为:0.023976023976023976
51出现的次数为7560, 概率为:0.02097902097902098
52出现的次数为6360, 概率为:0.017649017649017648
53出现的次数为5400, 概率为:0.014985014985014986
54出现的次数为4320, 概率为:0.011988011988011988
55出现的次数为3600, 概率为:0.00999000999000999
56出现的次数为2760, 概率为:0.007659007659007659
57出现的次数为2160, 概率为:0.005994005994005994
58出现的次数为1560, 概率为:0.004329004329004329
59出现的次数为1200, 概率为:0.00333000333000333
60出现的次数为840, 概率为:0.002331002331002331
61出现的次数为600, 概率为:0.001665001665001665
62出现的次数为360, 概率为:9.99000999000999E-4
63出现的次数为240, 概率为:6.66000666000666E-4
64出现的次数为120, 概率为:3.33000333000333E-4
65出现的次数为120, 概率为:3.33000333000333E-4
复制代码
作者:
寇龙飞
时间:
2012-9-14 22:04
本帖最后由 寇龙飞 于 2012-9-20 03:06 编辑
............................................................
作者:
黄敏
时间:
2012-9-24 17:14
寇龙飞 发表于 2012-9-14 21:50
运行结果:
老兄你太猛了,脑袋真好使,俺就不会
作者:
寇龙飞
时间:
2012-9-24 18:32
黄敏 发表于 2012-9-24 17:14
老兄你太猛了,脑袋真好使,俺就不会
呵呵。闲着没事找题做做。
版主、刘老师,都不给加分,桑心。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2