java随机分配_java正整数分成n份且每一份数值随机分配
时间: 2023-07-12 22:44:53 浏览: 226
可以使用Java中的Random类和数组来实现这个功能。具体步骤如下:
1. 首先输入要分成的份数n和总数值sum。
2. 定义一个长度为n的整数数组,用于存放每一份的数值。
3. 生成n-1个随机数,每个随机数表示分割点的位置,从小到大排序。
4. 根据分割点和sum值,计算每一份的数值。
5. 将每一份的数值存入数组中并输出。
下面是Java代码实现:
```java
import java.util.*;
public class RandomSplit {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入要分成的份数n:");
int n = scanner.nextInt();
System.out.print("请输入总数值sum:");
int sum = scanner.nextInt();
Random random = new Random();
int[] splitPoints = new int[n-1];
for (int i = 0; i < n-1; i++) {
splitPoints[i] = random.nextInt(sum);
}
Arrays.sort(splitPoints);
int[] values = new int[n];
int start = 0;
for (int i = 0; i < n-1; i++) {
values[i] = splitPoints[i] - start;
start = splitPoints[i];
}
values[n-1] = sum - start;
for (int i = 0; i < n; i++) {
int value = random.nextInt(values[i])+1;
System.out.println("第"+(i+1)+"份的数值是:"+value);
}
}
}
```
其中,random.nextInt(n)表示生成一个0到n-1的随机整数。注意,这里需要加1,因为题目要求每一份的数值是正整数。
阅读全文