上午看到基友分享的微信红包算法的文章,代码很短,春节期间红包太火了,看完就也想实现下玩玩,原代码是JAVA的,没接触过JAVA,所以看懂后改成了MATLAB的。原文链接:微信红包随机算法初探 , 作者:陈鹏。

所写MATLAB代码如下:% -----------------------------------

%Test for WeChat MoneyPackageAlgrithm

% Email:xiaolongjee@mail.nwpu.edu.cn

% 2016.02.13 - 17:32;

% -----------------------------------close all;

clc;

clear all;

global leftMoneyPackage

MaxTestTimes = 12; % Set as 4*x for display;

row = 4;

col = MaxTestTimes / row;

figure;

for times = 1:MaxTestTimes

leftMoneyPackage.peoples = 35;

leftMoneyPackage.leftmoney = 0.35;

n = leftMoneyPackage.peoples;

cache = zeros(n,1);

for i = 1:n

cache(i) = getRandomMoney();

end

subplot(col, row,times);

bar(cache, 'r');

endfunction money = getRandomMoney()

global leftMoneyPackage

if (leftMoneyPackage.peoples == 1)

leftMoneyPackage.peoples = 0;

money =  round(leftMoneyPackage.leftmoney * 100) / 100;

else

minGet = 0.01;

maxGet = leftMoneyPackage.leftmoney /    leftMoneyPackage.peoples * 2;

r = random('Uniform', 0, 1);

money = r * maxGet;

if(money < minGet)

money = minGet;

end

money = floor(money * 100) / 100;

leftMoneyPackage.peoples =    leftMoneyPackage.peoples - 1;

leftMoneyPackage.leftmoney =    leftMoneyPackage.leftmoney - money;

end

end

写完做了几组测试(每组重复12次):

1.35个人瓜分0.35元,理论每人为最低值0.01,正确。

35个人瓜分0.35元

2.35个人瓜分0.36元,理论34人为最低值0.01,1人0.02,正确。

35个人瓜分0.36元

3. 35人瓜分50元,作为普通组。

35人瓜分50元

最后建了个小群实际发红包重复跑程序,数据基本能吻合,手气最佳一般在均值2倍附近。

完毕,成就感满满。

想知道具原理及各种说明的点击文章开头链接。

北一  2016.02.13版权归作者所有,转载请注明作者、出处,其他任何形式的使用请联系我。

matlab 发微信,微信红包算法MATLAB实现相关推荐

  1. matlab程序模拟微信抢红包,微信红包算法MATLAB实现

    上午看到基友分享的微信红包算法的文章,代码很短,春节期间红包太火了,看完就也想实现下玩玩,原代码是JAVA的,没接触过JAVA,所以看懂后改成了MATLAB的.原文链接:微信红包随机算法初探 , 作者 ...

  2. 微信的红包算法 了解一下两种就可以了

    1.微信红包算法 代码大致意思是这样的:假设有100元钱,分给十个人.那么第一个人获得红包大小怎么计算呢?100/10 = 10元.这是期望值.从0.01到20的区间中(其中20=10乘以2)随机抽取 ...

  3. 微信手气红包算法 php,PHP实现微信/QQ手气红包,随机算法分享

    最近有个客户找我实现扫码抢手气红包,大家平时都在使用微信/QQ收发红包,玩的不亦乐乎.大家在抢红包,而程序员在研究红包算法.那么手气红包的随机分配算法是怎么实现的呢?怎么保证每个人都领得到,而且满足正 ...

  4. matlab控制算法C语言,PID算法Matlab仿真程序和C程序

    <PID算法Matlab仿真程序和C程序>由会员分享,可在线阅读,更多相关<PID算法Matlab仿真程序和C程序(6页珍藏版)>请在人人文库网上搜索. 1.增量式PID控制算 ...

  5. 分裂层次聚类matlab实现,凝聚层次聚类算法matlab源码

    <凝聚层次聚类算法matlab源码>由会员分享,可在线阅读,更多相关<凝聚层次聚类算法matlab源码(3页珍藏版)>请在人人文库网上搜索. 1.共享一个在数据挖掘课程中作为示 ...

  6. PHP实现微信随机红包算法和微信红包的架构设计简介

    微信红包的架构设计简介: 原文:https://www.zybuluo.com/yulin718/note/93148 @来源于QCon某高可用架构群整理,整理朱玉华. 背景:有某个朋友在朋友圈咨询微 ...

  7. 微信手气红包算法 php,微信随机生成红包金额算法php版

    最近在研究发红包的功能,于是写了个红包的生成算法. 红包生成算法的需求预先生成所有的红包还是一个请求随机生成一个红包 简单来说,就是把一个大整数m分解(直接以"分为单位,如1元即100)分解 ...

  8. matlab实现大气湍流退化模型算法,matlab与图像处理

    关于MATLAB在数字图像复原技术中应用的文献综述 摘要:图像复原技术在图像处理领域中具有非常重要的地位,该技术能够最大程度地恢复图像的本来面貌图像复原技术的重点在于找出导致图像失真的原因,并针对该原 ...

  9. 软抠图算法matlab代码,贝叶斯抠图算法matlab实现

    [实例简介] 完整的贝叶斯抠图matlab实现代码,经测试可运行,文档包含了图片资源,代码没有注释 [实例截图] [核心代码] BayesianMatting └── BayesianMatting ...

最新文章

  1. go使用SQLite数据库
  2. 自动化运维平台中的统一认证接入与单点登录实现
  3. 最多开启多少个线程_中国到底有多少个海岛?全球海岛最多国家,我国排第几?...
  4. 基于PyQt的扫雷游戏实现_下篇
  5. Webpack基础学习
  6. SSM之SpringMVC框架
  7. crossApp部署到Eclipse
  8. DirectX SDK 各版本开发包下载地址合集
  9. excel小技巧 生成递增时间区间
  10. 跨境电商如何通过WhatsApp Business进行客户服务?
  11. android检测cup温度工具,Android如何实现获取手机CPU的温度?
  12. 数据中心行业深度报告:从财务分析看IDC行业的投资价值
  13. CodeForces 1009D Relatively Prime Graph 贪心+枚举
  14. android serviceconnection 作用,Android Service服务的相关介绍
  15. 小红书用户画像分析_用户画像,该怎么分析?
  16. 一名技术的原则—美团工作六年的认知(2020年)
  17. C#、winfrom设置金额数字大小写转换
  18. Sitecore学习总结(1)
  19. 重阳重游万州文峰塔记
  20. 社会知觉:我们如何理解他人

热门文章

  1. Oracle的SQL语法提示30例,INDEX_JOIN,ORDERED,USE_NL,LEADING
  2. HelpDesk工作流多级,多任务流程(包含源代码和InfoPath模板)
  3. Android10以上之APEX格式介绍
  4. Vysor 2.1.x Pro使用
  5. Mac安装iproute2/dig/traceroute
  6. Android启动的init进程
  7. repo/git下载android源码断后重新下载
  8. GPUimage 遇到的崩溃及问题
  9. Win7的常用快捷键以及设置
  10. android手机慢,Android手机运行慢?!教你一秒“提速”50%