简体   繁体   中英

Use Math.random() to display percentage number in Java

Currently coding simple program. I want to display percentage of each visit to the store in 52 weeks. For example, "In 52 weeks store number 1 was inspected 20%". Here is the code so far.

public class StoreSelection {
  public static void main(String[] args) {
    for( int i=1; i<=52;i++){
        int randomSelection = 1+(int)(Math.random()*4);
        System.out.println(i+" week"+" Store number "+randomSelection+"   will be inspected");
    }
    // here should be stated "In 52 weeks store number 1 was visited (number of percentage)
    // and then below "In 52 weeks store number 2 was visited (number of percentage)  
    //and same for number 3 and 4.
  }
}

You should use an int array to store the number of selections each store received.

public static void main(String[] args) {
  int[] storeVisits = new int[4];
  for (int i = 1; i <= 52; i++) {
    int randomSelection = 1 + (int) (Math.random() * 4);
    storeVisits[randomSelection - 1]++; // randomSelection -1 is used because arrays start at 0
    System.out.println(i + " week" + " Store number " + randomSelection + "   will be inspected");
  }
  for (int i = 0; i < storeVisits.length; i++) {
    System.out.println("In 52 weeks store number " + (i + 1) + " was visited "
        + ((storeVisits[i] * 100) / 52) + "%");
  }
}

which outputs (will change each time):

1 week Store number 4   will be inspected
2 week Store number 3   will be inspected
3 week Store number 3   will be inspected
4 week Store number 2   will be inspected
5 week Store number 3   will be inspected
6 week Store number 3   will be inspected
7 week Store number 3   will be inspected
8 week Store number 2   will be inspected
9 week Store number 2   will be inspected
10 week Store number 1   will be inspected
11 week Store number 3   will be inspected
12 week Store number 4   will be inspected
13 week Store number 4   will be inspected
14 week Store number 4   will be inspected
15 week Store number 1   will be inspected
16 week Store number 2   will be inspected
17 week Store number 3   will be inspected
18 week Store number 4   will be inspected
19 week Store number 4   will be inspected
20 week Store number 3   will be inspected
21 week Store number 4   will be inspected
22 week Store number 1   will be inspected
23 week Store number 2   will be inspected
24 week Store number 1   will be inspected
25 week Store number 4   will be inspected
26 week Store number 4   will be inspected
27 week Store number 2   will be inspected
28 week Store number 2   will be inspected
29 week Store number 2   will be inspected
30 week Store number 1   will be inspected
31 week Store number 1   will be inspected
32 week Store number 4   will be inspected
33 week Store number 4   will be inspected
34 week Store number 4   will be inspected
35 week Store number 1   will be inspected
36 week Store number 3   will be inspected
37 week Store number 1   will be inspected
38 week Store number 2   will be inspected
39 week Store number 1   will be inspected
40 week Store number 4   will be inspected
41 week Store number 1   will be inspected
42 week Store number 4   will be inspected
43 week Store number 1   will be inspected
44 week Store number 2   will be inspected
45 week Store number 1   will be inspected
46 week Store number 1   will be inspected
47 week Store number 1   will be inspected
48 week Store number 3   will be inspected
49 week Store number 4   will be inspected
50 week Store number 4   will be inspected
51 week Store number 4   will be inspected
52 week Store number 4   will be inspected
In 52 weeks store number 1 was visited 26%
In 52 weeks store number 2 was visited 19%
In 52 weeks store number 3 was visited 19%
In 52 weeks store number 4 was visited 34%

Hope this helps.

public class StoreSelection {

public static void main(String[] args) {
    int weeks = 52;
    int storeCount = 4;
    int[] stores = new int[storeCount];
    for (int i = 0; i < weeks; i++) {
        int randomSelection = 1 + (int) (Math.random() * storeCount);
        System.out.println((i+1) + " week: " + " Store number " + randomSelection
                + "   will be inspected");
        stores[randomSelection-1]++;
    }

    for (int i = 0; i < storeCount; i++) {
        System.out.println("Store " + (i+1) + " was visited "
                + (stores[i] / 52.0 * 100.0) + "% times");
    }

}

}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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