Rumah > hujung hadapan web > tutorial js > 如何使用JS实现微信红包算法

如何使用JS实现微信红包算法

php中世界最好的语言
Lepaskan: 2018-06-02 10:17:52
asal
1953 orang telah melayarinya

这次给大家带来如何使用JS实现微信红包算法,使用JS实现微信红包算法的注意事项有哪些,下面就是实战案例,一起来看一下。

我们假设有一个100元的红包,要发给10个人。为了保证公平,算法需要保证以下的原则:

  • 每个人最少能抢到0.01元

  • 每个人的机会平等

  • 所有人的金额之和等于100元

1.简单的随机函数实现

很多朋友的一般思路是:

第一步:从0-100中随机一个数,得到第一个红包金额。

第二步:从0-剩余金额中随机一个数,得到第二个红包金额。

第三步:...

最后一步把剩余的钱都给最后一个人。

以此类推,得到全部的10 个红包。但是不知道大家注意到没有,这样存在明显的 不公平 。先抢的人比较有优势,第一个人的随机范围是0-100,有可能得到较大的金额。而最后一个人的随机范围就会很小,如果第一个人抢到了90块钱,那么最后一个人就不可能有的到超过10块钱的机会。我们用代码模拟一下这个过程:

 

测试结果如下:

 

细心的朋友会注意到,余额的值不正确,这是JavaScript浮点数运算的已知问题。当然解决的方式有很多,如果你有好的办法欢迎你给我留言。

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

如何使用vue中filter

怎样使用vue判断dom的class

Atas ialah kandungan terperinci 如何使用JS实现微信红包算法. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan