zoukankan      html  css  js  c++  java
  • 红包随机金额

    static void Main(string[] args)
    {
    double totalAmount = 20;
    int num = 10;
    double minAmount = 0.01;
    Random r = new Random();
    for (int i = 1; i < num; i++)
    {
    double safeAmount = (totalAmount - (num - i) * minAmount) / (num - i);
    //double money = new Random().Next(Convert.ToInt32(minAmount * 100), Convert.ToInt32(safeAmount * 100)) / 100;
    double money = NextDouble(r, minAmount * 100, safeAmount * 100) / 100;
    money = Math.Round(money, 2, MidpointRounding.AwayFromZero);
    totalAmount=totalAmount-money;
    totalAmount = Math.Round(totalAmount, 2, MidpointRounding.AwayFromZero);
    Console.WriteLine("第" + i + "个红包:" + money + " 元,余额:" + totalAmount + " 元");
    }
    Console.WriteLine("第" + num + "个红包:" + totalAmount + " 元,余额:0 元");

    Console.ReadKey();
    }

    /// <summary>
    /// 生成设置范围内的Double的随机数
    /// eg:_random.NextDouble(1.5, 2.5)
    /// </summary>
    /// <param name="random">Random</param>
    /// <param name="miniDouble">生成随机数的最大值</param>
    /// <param name="maxiDouble">生成随机数的最小值</param>
    /// <returns>当Random等于NULL的时候返回0;</returns>
    protected static double NextDouble(Random random, double miniDouble, double maxiDouble)
    {
    if (random != null)
    {
    return random.NextDouble() * (maxiDouble - miniDouble) + miniDouble;
    }
    else
    {
    return 0.0d;
    }
    }

  • 相关阅读:
    bzoj 2527: [Poi2011]Meteors 整体二分
    bzoj 2738 矩阵乘法
    bzoj 3110 K大数查询
    bzoj 3262 陌上花开
    cogs 577 蝗灾 CDQ分治
    bzoj 1101 zap
    bzoj 2005
    bzoj 3518 Dirichlet卷积
    bzoj 1257
    最优贸易 [NOIP 2009]
  • 原文地址:https://www.cnblogs.com/panjuan/p/11946928.html
Copyright © 2011-2022 走看看