PHP如何编写生成随机金额红包的算法?

更新于
2026-09-30 14:58:15
0阅读来源:SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2224个文字,预计阅读时间需要9分钟。

PHP如何编写生成随机金额红包的算法?

基本思路+随机生成面,我借鉴了博主的思路:原文:若要把1个红包分给N个人,实际上就是要得到N+个百分数数据和=1的条件。

基本思路

在随机数生成方面,我借鉴了这位博主 @悲惨的大爷 的思路:

原文:比如要把 1 个红包分给 N 个人,实际上就是相当于要得到 N 个百分比数据 条件是这 N 个百分比之和 = 100/100。这 N 个百分比的平均值是 1/N。 并且这 N 个百分比数据符合一种正态分布(多数值比较靠近平均值)。

解读:比如我有 1000 块钱,发 50 个红包,就先随机出 50 个数,然后算出这 50 个数的均值 avg,用 avg/(1/N),就得到了一个基数 mixrand ,然后用随机出的那 50 个数分别去除以 mixrand ,得到每个数相对基数的百分比 randVal ,然后用 randVal 乘以 1000 块钱,就可以得到每个红包的具体金额了。

阅读全文

本文共计2224个文字,预计阅读时间需要9分钟。

PHP如何编写生成随机金额红包的算法?

基本思路+随机生成面,我借鉴了博主的思路:原文:若要把1个红包分给N个人,实际上就是要得到N+个百分数数据和=1的条件。

基本思路

在随机数生成方面,我借鉴了这位博主 @悲惨的大爷 的思路:

原文:比如要把 1 个红包分给 N 个人,实际上就是相当于要得到 N 个百分比数据 条件是这 N 个百分比之和 = 100/100。这 N 个百分比的平均值是 1/N。 并且这 N 个百分比数据符合一种正态分布(多数值比较靠近平均值)。

解读:比如我有 1000 块钱,发 50 个红包,就先随机出 50 个数,然后算出这 50 个数的均值 avg,用 avg/(1/N),就得到了一个基数 mixrand ,然后用随机出的那 50 个数分别去除以 mixrand ,得到每个数相对基数的百分比 randVal ,然后用 randVal 乘以 1000 块钱,就可以得到每个红包的具体金额了。

阅读全文