[英]Need help getting populating array with random numbers 1-10 without using 0 in Java
需要幫助以隨機數1-10填充數組而不使用0。-創建100個整數的數組。 我試過了int random = r.nextInt(High-Low) + Low
; 但這不算每個數字有多少。
我在作業中需要做的是:
package arrays;
import java.util.Arrays;
import java.util.Random;
public class Intergers {
public static void main(String[] args) {
// TODO Auto-generated method stub
Random r = new Random();
// Create an array of 100 integers.
int array[] = new int[100];
int a = 0;
// Populate the array with random numbers ranging from 1 to 10.
while (a < 100)
{
int random = r.nextInt(10);
array[a] = random;
a++;
}
//calculate sum of all array elements
int sum = 0;
for(int i=0; i < array.length ; i++)
sum = sum + array[i];
//calculate average value
double average = (double)sum/array.length;
System.out.println("Array: " + Arrays.toString(array));
// System.out.println("Sum: " + sum);
//System.out.println("Array Length: " + array.length);
System.out.println("Average value of array is: " + average);
// Count the occurrence of each of the ten numbers in the array of 100
int[] occurrences = new int[10];
for (int b : array) {
occurrences[b]++;
}
// System.out.println("Array: " + Arrays.toString(occurrences));
System.out.println(1 + " appeared " + occurrences[0] + " times");
System.out.println(2 + " appeared " + occurrences[1] + " times");
System.out.println(3 + " appeared " + occurrences[2] + " times");
System.out.println(4 + " appeared " + occurrences[3] + " times");
System.out.println(5 + " appeared " + occurrences[4] + " times");
System.out.println(6 + " appeared " + occurrences[5] + " times");
System.out.println(7 + " appeared " + occurrences[6] + " times");
System.out.println(8 + " appeared " + occurrences[7] + " times");
System.out.println(9 + " appeared " + occurrences[8] + " times");
System.out.println(10 + " appeared " + occurrences[9] + " times");
}
}
int random = r.nextInt(10);
將為您提供0到9之間的偽隨機int
。只需加1即可獲得1到10之間的范圍:
int random = r.nextInt(10) + 1;
您還必須調整對occurrences
數組的處理,以解決數組索引從0開始的事實:
int[] occurrences = new int[10];
for (int b : array) {
occurrences[b-1]++;
}
for (int i = 0; i < occurences.length; i++) {
System.out.println(i+1 + " appeared " + occurrences[i] + " times");
}
我有一個業余的方式來做到這一點。
執行:
ArrayList<Integer> a = new ArrayList<>();
for (int i = 1; i < 10; i++) {
a.add(i);
}
int[] store = new int[100];
for (int i = 1; i < 100; i++) {
Collections.shuffle(a);
store[i] = a.get(0);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.