java吧 关注:1,237,005贴子:12,706,164
  • 21回复贴,共1

求教随机数的概率一个问题?

只看楼主收藏回复

问题是这样的:生成奇偶概率分别为p1和p2,且在a,b范围内的20个随机整数,将其保存在Arraylist中返回


IP属地:北京来自Android客户端1楼2015-12-17 22:24回复
    随机数用math.random()*(b-a)+a来产生,可是概率怎么办,求大神


    IP属地:北京来自Android客户端2楼2015-12-17 22:26
    回复
      概率怎么处理啊,求教


      IP属地:北京来自Android客户端3楼2015-12-17 22:34
      回复
        一样的啊,你找一个中间的数,比如1,两个随机的数边界为1-p1,1+p2;如果生成的随机数小于1,输奇数,大于1,输偶数


        4楼2015-12-17 22:44
        收起回复
          我才学几天java!我的看法是Scanner 一个概率 再用 然后求出 随机出偶数的个数 用if判断是否满足?再随机出奇数


          IP属地:湖南来自手机贴吧5楼2015-12-17 22:46
          收起回复
            package com.demo;
            import java.util.ArrayList;
            import java.util.List;
            import java.util.Scanner;
            public class ValidateRandom {
            public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入a:");
            int a = sc.nextInt();
            System.out.println("请输入b:");
            int b = sc.nextInt();
            System.out.println("请输入奇数的概率:");
            float p1 = sc.nextFloat();
            List<Integer> list = null;
            int rownum = 0;
            while(true){
            float odd = 0; //奇数个数
            float even = 0;//偶数个数
            list = new ArrayList<Integer>();
            for(int i = 0;i < 20;i++){
            rownum = (int) Math.round(Math.random()*(b-a)) + a;
            if(rownum % 2 == 0){
            even++;
            list.add(rownum);
            }else{
            odd++;
            list.add(rownum);
            }
            }
            if(odd/20 != p1){
            continue;
            }else{
            break;
            }
            }
            for(int xx : list){
            System.out.print(xx+" ");
            }
            }
            }


            7楼2015-12-17 23:22
            收起回复
              假设基数概率 0.3 偶数0.7 先生成一个随机数 判断是否大于0.3 然后选择生成随机奇数,或随机偶数,随机奇数偶数会吧


              8楼2015-12-18 11:36
              收起回复
                汉语:我是来打酱油的。 英语: I'm going to buy some soy sauce. 韩语: ?? ?? ??. 德语: ich gehe Sojasosse kaufen. 法语: je me suis prend que sauce de soja. 俄语: Я пришла за соевым соусом.


                IP属地:安徽10楼2015-12-18 12:32
                回复
                  首先判断随机数奇偶,奇数的设 i加一,偶数的话 j加一,奇数概率就是 i/j+i


                  来自Android客户端11楼2015-12-20 00:15
                  回复
                    你又一个数组[1,1,2]随机012下标取数组 ,取到1生成范围奇数,2偶数,奇数概率2/3偶数1/3


                    IP属地:重庆来自Android客户端12楼2015-12-20 00:48
                    回复