I want to generate 9 non zero random numbers whose sum is 250. I have tried following code it gives me 9 random numbers but some numbers are zero.
public vo
//Perl code translated to Java
//Its working and no 0's !!!!
import java.util.*;
import java.util.stream.*;enter code here
public class MyClass {
public static void main(String args[]) {
int numberOfDraws = 17;
int targetSum = 40;
Random r = new Random();
List load = new ArrayList<>();
int sum = 0;
for (int i = 0; i < numberOfDraws; i++) {
int next = r.nextInt(targetSum) + 1;
load.add(next);
sum += next;
System.out.println("Arraylist first loop " + load.get(i));
}
double factor = (((double)targetSum)-((double)numberOfDraws)) / ((double)sum);
System.out.println("Factor value: " + factor);
int newSum =0;
for (int i = 0; i < numberOfDraws; i++) {
load.set(i, (int) ((load.get(i) * factor)) + 1);
newSum += load.get(i);
System.out.println("Arraylist second loop " + load.get(i));
}
int fudge = targetSum - newSum;
for (int i = 0; i < fudge; i++) {
int y = r.nextInt(numberOfDraws);
load.set(i, load.get(i) + 1);
}
System.out.println("Random arraylist " + load);
}
}