js使用正整数平均分配的思路

 0 0条评论

项目需求是这样的,一个抽奖游戏,百分比总和是100。可以有N个奖品,有一个按钮实现平均分配。

如果100/N是正整数的话,那就非常简单了。

假设N是4,那么每个奖品中奖几率就是25%。

如果如果不是呢?假设是6,平均数是16.66666。那就应该是16、16、17、17、17、17这样分配,才比较合理。而不是简单的。前五个16,最后一个20。那么最后一个的几率就大很多。

贴一下代码吧,也是非常简单的,作为记录一下。

const handleAve = () => {
    const length = items.value.length
    const ave = (Math.floor(100 / length))
    const remainder = 100 - ave * length
    for (let i = 0; i < length; i++) {        if (i < remainder)
        items.value[i].percentage = ave + 1
        else
        items.value[i].percentage = ave
    }
}

本文作者:双黑

版权声明:本站文章欢迎链接分享,禁止全文转载!

游客