拼手气红包+数组乱序

1.设计一个函数能把给定数组的顺序完全随机打乱
2.给定一个拼手气红包总金额s 和 红包个数n 设计一个函数要求返回一个长度为n的数组代表n个金额随机的红包。

// 遍历随机交换
    public double[] shuffle(double[] arr) {
            for (int i = 0; i < arr.length; i++) {
                int random = (int) Math.random() * (arr.length - 1);
                double temp = arr[i];
                arr[i] = arr[random];
                arr[random] = temp;
            }
            return arr;
    }
    public double[] redpacket(int s, int n) {
            double remain = s;
            double[] pack = new double[n];
            for (int i = 0; i < n - 1; i++) {
                    double random = random(remain);
// 如果剩下的钱不够没人0.01 或者得到的红包金额为0时重新random
                   while (remain - random < 0.01 * (n - i) || remain - random == remain) {
                        random = random(remain);
                    }
                    remain -= random;
                    pack[i] = random;
            }
            pack[n - 1] = Math.round(remain * 100) / 100.0;
            return shuffle(pack);
    }
// 返回拼手气红包金额
    double  random(double remain) {
// Math.random() 返回[0,1) 左闭右开
            return Math.round(Math.random() * remain * 100) / 100.0;
    }
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容