Вот что я получаю.
Это то, что я на самом деле получаю.
Напишите программу DiscreteDistribution. java, который принимает целочисленный аргумент командной строки m, за которым следует последовательность положительных целочисленных аргументов командной строки a1, a2,…, an и печатает m случайных индексов (разделенных пробелами), выбирая каждый индекс i с вероятностью, пропорциональной к ай.
Пока у меня есть
public static void main(String[] args) {
// number of random indices
int m = Integer.parseInt(args[0]);
// read in frequency of occurrence of n values
int n = args.length;
int[] freq = new int[n];
for (int i = 0; i < n; i++) {
freq[i] = Integer.parseInt(args[i]);
}
// compute total count of all frequencies
int total = 0;
for (int i = 0; i < n; i++) {
total += freq[i];
}
for (int j = 0; j < m; j++) {
// generate random integer with probability proportional to frequency
int r = (int) ((total) * Math.random() - 1); // integer in [0, total)
int sum = 0;
int event = -1;
for (int i = 0; i < n && sum <= r; i++) {
sum += freq[i];
event = i;
System.out.println(freq[i]);
}
}
}