红包金额随机数的生成

Posted 戴眼镜的蚂蚁

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了红包金额随机数的生成相关的知识,希望对你有一定的参考价值。

 <form>
红包个数:<input type="text" name="count" id="count" required style="height: 20px;"> <br>
总金额(元):<input type="text" name="amount" id="amount" required style="height: 20px;"><br>
<input type="button" id="submit" value="获取红包金额">
</form></p>

<div id=‘result‘></div>

<script src="https://www.lijinma.com/javascripts/libs/jquery.min.js"></script>
<script>

$(#submit).click(function(){
  function getRandomInt(min, max) {
    return Math.floor(Math.random() * (max - min)) + min;
  }

  function getNextItemKey(currentKey, count) {
    if (currentKey > count) {
      throw Error: currentKey > count;
    }
    if (currentKey != count) {
      return currentKey + 1;
    } else {
      return 1;
    }
  }
  
  var count = $(#count).val();
  var amount = $(#amount).val();
  if (!count) {
    alert(红包个数必须填写);
    return false;
  }
  if (!amount) {
    alert(总金额必须填写);
    return false;
  }
  if (amount / count < 0.01) {
    alert(单个红包金额不可低于0.01元,请重新填写金额);
    return false;
  }
  amount = amount * 100;
  var items = [];
  for (var i = 0; i < count; ++ i) {
    items[i] = getRandomInt(1, 100);
  }
  var itemAmounts = [];
  var sum = items.reduce(function(pv, cv) { return pv + cv; }, 0);
  var currentAmount = 0;
  for (var i = 0; i < count; ++ i) {
    if (i !== count - 1) {
      itemAmounts[i] = Math.floor(items[i] / sum * amount);
      currentAmount += itemAmounts[i];
    } else {
      itemAmounts[i] = amount - currentAmount
    }
  }
  
  for (var i = 0; i < count; ++ i ) {
    if (itemAmounts[i] > 0) {
      continue;
    }
    var nextKey = getNextItemKey(i, count);
    var diff = 1 - itemAmounts[i];
    itemAmounts[i] = 1;
    itemAmounts[nextKey] -= diff;
  }
  
  for (var i = 0; i < count; ++ i ) {
    itemAmounts[i] = itemAmounts[i] / 100;
  }
  
  alert(itemAmounts.join()+);
  
});
</script>

 

以上是关于红包金额随机数的生成的主要内容,如果未能解决你的问题,请参考以下文章

python 生成随机红包

(转)红包随机算法&微信群红包随机算法

Java改变生成随机数的平均值(改变生成随机数的概率)

Java改变生成随机数的平均值(改变生成随机数的概率)

微信红包算法TEST

随机抢红包算法实现