A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 何祥旺 中级黑马   /  2012-5-15 18:37  /  2500 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

从1-15数中,随机不放回取5个数,求取的5个数的和的所有可能值的概率的算法!

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

5 个回复

倒序浏览
令人头疼
回复 使用道具 举报
  1. package com.itheima.test;

  2. import java.util.HashSet;

  3. /*从1-15数中,随机不放回取5个数,求取的5个数的和的所有可能值的概率的算法!*/

  4. /*分析:和的所有可能值为区间1+2+3+4+5到15+14+13+12+11*/
  5. /*利用HashSet存储元素不重复特性,判断五个数两两互不相等*/
  6. public class ConsoleTest {
  7.        
  8.        
  9.         public static void main(String[] args) {
  10.                
  11.                 int minLen = 1+2+3+4+5 +1-1;
  12.                 int maxLen = 15+14+13+12+11 + 1;
  13.                 int[] arr = new int[maxLen];
  14.                 int sum = 0;
  15.                 HashSet<Integer> set = new HashSet<Integer>();
  16.                
  17.                 for(int i=1; i<=15; i++) {
  18.                         for(int j=1; j<=15; j++) {
  19.                                 for(int k=1; k<=15; k++) {
  20.                                         for(int m=1; m<=15; m++) {
  21.                                                 for(int n=1; n<=15; n++) {
  22.                                                        
  23.                                                         /*判断五个变量是否两两不等这里,貌似比较丑*/
  24.                                                         set.add(i);
  25.                                                         set.add(j);
  26.                                                         set.add(k);
  27.                                                         set.add(m);
  28.                                                         set.add(n);
  29.                                                         if(set.size()==5)
  30.                                                                 arr[i+j+k+m+n]++;
  31.                                                         set.clear();
  32.                                                 }
  33.                                         }
  34.                                 }
  35.                         }
  36.                 }
  37.                 for(int i=minLen; i<maxLen; i++) {
  38.                         sum += arr[i];
  39.                 }
  40.                 System.out.println("所有可能值出现的次数为:" + sum);
  41.                 for(int i=minLen; i<maxLen; i++) {
  42.                         System.out.println(i + "出现的次数为"+ arr[i]+",\t概率为:" + arr[i]/(double)sum);
  43.                 }
  44.         }

  45. }
复制代码
运行结果:
  1. 所有可能值出现的次数为:360360
  2. 15出现的次数为120,        概率为:3.33000333000333E-4
  3. 16出现的次数为120,        概率为:3.33000333000333E-4
  4. 17出现的次数为240,        概率为:6.66000666000666E-4
  5. 18出现的次数为360,        概率为:9.99000999000999E-4
  6. 19出现的次数为600,        概率为:0.001665001665001665
  7. 20出现的次数为840,        概率为:0.002331002331002331
  8. 21出现的次数为1200,        概率为:0.00333000333000333
  9. 22出现的次数为1560,        概率为:0.004329004329004329
  10. 23出现的次数为2160,        概率为:0.005994005994005994
  11. 24出现的次数为2760,        概率为:0.007659007659007659
  12. 25出现的次数为3600,        概率为:0.00999000999000999
  13. 26出现的次数为4320,        概率为:0.011988011988011988
  14. 27出现的次数为5400,        概率为:0.014985014985014986
  15. 28出现的次数为6360,        概率为:0.017649017649017648
  16. 29出现的次数为7560,        概率为:0.02097902097902098
  17. 30出现的次数为8640,        概率为:0.023976023976023976
  18. 31出现的次数为9960,        概率为:0.02763902763902764
  19. 32出现的次数为11040,        概率为:0.030636030636030636
  20. 33出现的次数为12360,        概率为:0.034299034299034296
  21. 34出现的次数为13320,        概率为:0.03696303696303696
  22. 35出现的次数为14520,        概率为:0.040293040293040296
  23. 36出现的次数为15240,        概率为:0.04229104229104229
  24. 37出现的次数为16080,        概率为:0.044622044622044624
  25. 38出现的次数为16440,        概率为:0.045621045621045624
  26. 39出现的次数为16920,        概率为:0.04695304695304695
  27. 40出现的次数为16920,        概率为:0.04695304695304695
  28. 41出现的次数为16920,        概率为:0.04695304695304695
  29. 42出现的次数为16440,        概率为:0.045621045621045624
  30. 43出现的次数为16080,        概率为:0.044622044622044624
  31. 44出现的次数为15240,        概率为:0.04229104229104229
  32. 45出现的次数为14520,        概率为:0.040293040293040296
  33. 46出现的次数为13320,        概率为:0.03696303696303696
  34. 47出现的次数为12360,        概率为:0.034299034299034296
  35. 48出现的次数为11040,        概率为:0.030636030636030636
  36. 49出现的次数为9960,        概率为:0.02763902763902764
  37. 50出现的次数为8640,        概率为:0.023976023976023976
  38. 51出现的次数为7560,        概率为:0.02097902097902098
  39. 52出现的次数为6360,        概率为:0.017649017649017648
  40. 53出现的次数为5400,        概率为:0.014985014985014986
  41. 54出现的次数为4320,        概率为:0.011988011988011988
  42. 55出现的次数为3600,        概率为:0.00999000999000999
  43. 56出现的次数为2760,        概率为:0.007659007659007659
  44. 57出现的次数为2160,        概率为:0.005994005994005994
  45. 58出现的次数为1560,        概率为:0.004329004329004329
  46. 59出现的次数为1200,        概率为:0.00333000333000333
  47. 60出现的次数为840,        概率为:0.002331002331002331
  48. 61出现的次数为600,        概率为:0.001665001665001665
  49. 62出现的次数为360,        概率为:9.99000999000999E-4
  50. 63出现的次数为240,        概率为:6.66000666000666E-4
  51. 64出现的次数为120,        概率为:3.33000333000333E-4
  52. 65出现的次数为120,        概率为:3.33000333000333E-4
复制代码
回复 使用道具 举报
本帖最后由 寇龙飞 于 2012-9-20 03:06 编辑

............................................................
回复 使用道具 举报
寇龙飞 发表于 2012-9-14 21:50
运行结果:

老兄你太猛了,脑袋真好使,俺就不会
回复 使用道具 举报
黄敏 发表于 2012-9-24 17:14
老兄你太猛了,脑袋真好使,俺就不会

呵呵。闲着没事找题做做。

版主、刘老师,都不给加分,桑心。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马