c# Java 微信红包算法

            int total_money_cent = 1000; // 红包总金额 单位:分
            int total_people = 8; // 抢红包总人数
       int[] array = new int[total_money_cent];
            for (int i = 0; i < total_money_cent; i++)
            {
                array[i] = i;
            }

            Random random = new Random();
            for (int i = 1; i < total_people; i++)
            {
                int index = random.Next(total_money_cent - i) + i;
                int temp = array[i];
                array[i] = array[index];
                array[index] = temp;
            }
            array[total_people] = total_money_cent;


            Array.Sort(array, 0, total_people + 1);
            for (int i = 1; i <= total_people; i++)
            {
                Console.Write("第 {0} 个红包:{1}.{2} 元,剩下 {3}.{4} 元
", i,
                    (array[i] - array[i - 1]) / 100, (array[i] - array[i - 1]) % 100,
                    (total_money_cent - array[i]) / 100, (total_money_cent - array[i]) % 100);
            }

 Java

int total_money_cent; // 红包总金额
        int total_people; // 抢红包总人数

        total_money_cent = 1000;
        total_people = 8;

        int array[] = new int[total_money_cent];
        for (int i = 0; i < total_money_cent; i++) {
            array[i] = i;
        }

        Random random = new Random();
        for (int i = 1; i < total_people; i++) {
            int index = random.nextInt(total_money_cent - i) + i;
            int temp = array[i];
            array[i] = array[index];
            array[index] = temp;
        }
        array[total_people] = total_money_cent;
        Arrays.sort(array, 0, total_people + 1);
        for (int i = 1; i <= total_people; i++) {
            System.out.printf("第 %d 个红包:%d.%02d 元,剩下 %d.%02d 元
", i, 
                (array[i] - array[i-1]) / 100, (array[i] - array[i-1]) % 100 ,
                (total_money_cent - array[i]) / 100, (total_money_cent - array[i]) % 100);
        }
原文地址:https://www.cnblogs.com/micenote/p/7267207.html