猿问

红包的随机分配

使用random函数每次随机分配 每次得出的红包值大于0.01小于剩余金额-剩余人数*0.01 最后一个人获得剩余全部就行

这个想法用算法怎么表示啊,想了很久都没有想法


婷婷同学_
浏览 458回答 1
1回答

潇潇雨雨

想法就不对。提问嘛,最好先说效果,再说思考。你要先定,精度是 2 位小数。不是大于0.01 ,而是&nbsp;大于等于0.01。在这两个前提下:设总金额为 S ,总人数为 N ,是小金额为 M 。( M = 0.01 )首先检查, M * N >= S ,否则无法分配。计算上,先定每个人已有 M ,剩下的金额就是 S - M * N 。问题转化为 S - M * N 怎么分配。这个就简单了,每次迭代,取 [0, L] 即可, L <= 0 ,不用迭代了。 L = S - M * N - sum(Pn) , Pn 为第 N 个人在 M 基础上多出的金额。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答