java随机把正整数分成多个非负数

2022-11-17  本文已影响0人  笔记本65

如果输入值大于要分开的数的个数,保证每个数最少是1,否则最小可以是0。

    public static List<Integer> randomDivideNumber(int number, int part) {
        Random random = new Random();
        List<Integer> result = new ArrayList<>();
        int total;
        if (number > part) {
            total = number - part;
            for (int i = 0; i < part - 1; i++) {
                int rand = random.nextInt(total + 1);
                result.add(rand + 1);
                total = total - rand;
            }
            result.add(total + 1);
        } else {
            total = number;
            for (int i = 0; i < part - 1; i++) {
                int rand = random.nextInt(total + 1);
                result.add(rand);
                total = total - rand;
            }
            result.add(total);
        }
        return result;
    }
上一篇 下一篇

猜你喜欢

热点阅读