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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 周海诚 黑马帝   /  2012-4-17 17:14  /  1950 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 周海诚 于 2012-4-18 12:14 编辑

定义一个方法
返回三个数
返回的概率分别为7%,8%,9%
请教是用Random吗?

4 个回复

倒序浏览
Random应该不能控制概率吧
回复 使用道具 举报
random是用来生成随机数的,简单来说也可以得随机的几率,但这个跟概率没有关系。。。两个概念
下边这个根据几率做一些功能的例子
  1. import java.util.Random;


  2. public class ran
  3. {
  4.         static Random random = new Random();
  5.         public static void main(String[] args)
  6.         {
  7.                 // 第一个参数100表示比例,如果要求千分比就是1000
  8.                 // 第二个参数是表示要拿几个随机的比例
  9.                 int[] randomArray = getRandomNums(100, 10);
  10.                 // 假设我有一个功能,有35的几率说你好,有45的几率说hello,另外20%的几率说对不起
  11.                 for (int i : randomArray)
  12.                 {
  13.                         if(i < 35)
  14.                         {
  15.                                 System.out.println("你好");
  16.                         }
  17.                         else if(i < 80){
  18.                                 System.out.println("hello");
  19.                         }
  20.                         else {
  21.                                 System.out.println("对不起");
  22.                         }
  23.                 }
  24.                
  25.                
  26.         }
  27.        
  28.         public static int[] getRandomNums(int scale, int nums)
  29.         {
  30.                 int[] temp = new int[nums];
  31.                
  32.                 for(int i = 0; i < nums; i++)
  33.                 {
  34.                         temp[i] = getRandom(scale);
  35.                 }
  36.                
  37.                 return temp;
  38.         }
  39.        
  40.         public static int getRandom(int scale)
  41.         {
  42.                 return Math.abs(random.nextInt() % scale);
  43.         }
  44. }
复制代码
回复 使用道具 举报
本帖最后由 曾虓 于 2012-4-17 21:55 编辑

random是用来生成生成随机数的,不能直接生成概率,不过可以通过
Random rndRandom =new Random();
以及int i =rndRandom.nextInt(100);
来生成0-99的值,再转换成字符串类型+%,输出打印即可。
代码如下:
  1.         public static void main(String[] args) {
  2.                 Random rndRandom = new Random();
  3.                 String[] str = new String[3];
  4.                 for (int i = 0; i <= 2; i++) {
  5.                         str[i] = String.valueOf(rndRandom.nextInt(100)) + "%";
  6.                         System.out.println(str[i]);
  7.                 }

  8.         }
复制代码
希望对你有所帮助
回复 使用道具 举报
曾虓 发表于 2012-4-17 21:51
random是用来生成生成随机数的,不能直接生成概率,不过可以通过
Random rndRandom =new Random();
以及int ...

谢谢··
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马