繁体   English   中英

角色2骰子100000次,写出每个总和滚动的次数并制作图表-Java

[英]Role 2 dice 100000 times, write the amount of times each sums and rolled and make a graph - Java

到目前为止,这是我的代码。

public class TwoDice {

    public static void main(String[] args) {
        Dice a = new Dice();
        Dice b = new Dice();

        int sum = 0;

        int is2=0; int is3=0; int is4=0; int is5=0; int is6=0;
        int is7=0; int is8=0; int is9=0; int is10=0; int is11=0; int is12=0;

        for (int i=1; i<= 100000; i++){
            a.roll();
            a.getFaceValue();

            b.roll();
            b.getFaceValue();

            sum = (a.getFaceValue()+ b.getFaceValue());
            if(sum == 2){
                is2++;
            }else{
                if(sum == 3){
                    is3++;
                    }else{
                        if(sum == 4){
                            is4++;
                        }else{
                            if(sum == 5){
                                is5++;
                            }else{
                                if(sum == 6){
                                    is6++;
                                }else{
                                    if(sum == 7){
                                        is7++;
                                    }else{ 
                                        if(sum == 8){
                                            is8++;
                                        }else{
                                            if(sum == 9){
                                                is9++;
                                            }else{
                                                if(sum == 10){
                                                    is10++;
                                                }else{
                                                    if(sum == 11){
                                                        is11++;
                                                    }else{
                                                        if(sum == 12){
                                                            is12++;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
            }
        }

        System.out.println("The sum is 2 "+ is2 + " many times");
        System.out.println("The sum is 3 "+ is3 + " many times");
        System.out.println("The sum is 4 "+ is4 + " many times");
        System.out.println("The sum is 5 "+ is5 + " many times");
        System.out.println("The sum is 6 "+ is6 + " many times");
        System.out.println("The sum is 7 "+ is7 + " many times");
        System.out.println("The sum is 8 "+ is8 + " many times");
        System.out.println("The sum is 9 "+ is9 + " many times");
        System.out.println("The sum is 10 "+ is10 + " many times");
        System.out.println("The sum is 11 "+ is11 + " many times");
        System.out.println("The sum is 12 "+ is12 + " many times");

        for(int i = 0; i <= is2;i++){
            System.out.println("*");
        }
        for(int i = 0; i <= is3;i++){
            System.out.println("*");
        }
        for(int i = 0; i <= is4;i++){
            System.out.println("*");
        }
        for(int i = 0; i <= is6;i++){
            System.out.println("*");
        }
        for(int i = 0; i <= is7;i++){
            System.out.println("*");
        }
        for(int i = 0; i <= is8;i++){
            System.out.println("*");
        }
        for(int i = 0; i <= is9;i++){
            System.out.println("*");
        }
        for(int i = 0; i <= is10;i++){
            System.out.println("*");
        }
        for(int i = 0; i <= is11;i++){
            System.out.println("*");
        }
        for(int i = 0; i <= is12;i++){
            System.out.println("*");
        }
    } 
}

如何修复我的代码,以便每次is2都增加一个星形打印。

例如,如果is2增加了3次,而is3增加了4次,它将显示为

***
****

既然你还没有学会阵列呢,我就告诉你如何打印*有给你two s每线。 您需要多次使用System.out.print ,但只需一行System.out.println即可完成这一行。 就像是,

for(int i = 0; i <= is2;i++){
    System.out.print("*"); // <-- on one line.
}
System.out.println(); // <-- end the line.

如果使用哈希图,则可能会压缩太多,如下所示:

公共课TwoDice {

public static void main(String[] args) {
    Dice a = new Dice();
    Dice b = new Dice();
    Map<Integer,Integer> sumMap = new Hashmap<Integer,Integer>();
    int sum = 0;

    for (int i=1; i<= 100000; i++){
        a.roll();
        a.getFaceValue();
        b.roll();
        b.getFaceValue();
        // 
        sum = (a.getFaceValue()+      
                b.getFaceValue());
        if(sumMap.get(sum)==null){
           sumMap.put(sum,1);
        }else{               
           sumMap.put(sum,sumMap.get(sum)+1);
        }
     }
     for(int i=1; i<=12; i++)
     {
         int size = sumMap.get(i)==null? 0 : sumMap.get(i);
         System.out.println("The sum is "+i+" "+ size + 
                                        " many times");
     }            
     for(int i=1; i<=12; i++)
     {
         int size = sumMap.get(i)==null? 0 : sumMap.get(i);
         for(int j=1; j<=size; j++){
             System.out.print("*");
         }
         System.out.println("");
     }         
}

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM