php红包算法函数[优化]
php红包算法
<?php
header("Content-Type: text/html;charset=utf-8");//输出不乱码,你懂的
$total=10000;//红包总额
$num=10;// 分成8个红包,支持8人随机领取
$min=10;//每个人最少能收到0.01元
echo '<pre>';
$redarr=array();
for ($i=1;$i<=$num;$i++)
{
$red=getredmoney($i,$total,$num,$min);
$total=$total-$red['money'];
echo '第'.$i.'个红包:'.$red['money'].' 元,余额:'.$red['total'].' 元 <br/>';
$redarr[]=$red['money'];
}
echo '总金额:'.array_sum($redarr);
/**
* 获取红包
* @param $i 第几个人
* @param $total 剩余总红包金额
* @param $num 总人数
* @param $min 最小获得金额
* @param $point 保留小数位数
*/
function getredmoney($i,$total,$num=10,$min=1,$point=0){
if($i==$num){
$money=$total;
}else{
$pre=$total/($num-$i+1);
if($pre==$min){
$money=$min;
}else if($pre<$min || ($pre-$min)<1){
$safe_total=$total-($num-$i)*$min;//随机安全上限
$money=@mt_rand($min*100,$safe_total*100)/100;
}else{
$safe_total=($total-($num-$i)*$min)/($num-$i);//随机安全上限
$money=@mt_rand($min*100,$safe_total*100)/100;
if($money<$min)$money=$min;
}
$money=round($money,$point);
}
$total=$total-$money;
return array('i'=>$i,'money'=>$money,'total'=>$total);
}
?>
php红包算法函数[优化]的更多相关文章
- php 固定红包 + 随机红包算法
<?php /** * 随机红包+固定红包算法[策略模式] * copyright (c) 2016 http://blog.csdn.net/CleverCode */ //配置传输数据DTO ...
- Bellman-Ford 算法及其优化
Bellman-Ford 算法及其优化 转自:http://hi.baidu.com/jzlikewei/blog/item/94db7950f96f995a1038c2cd.html Bellman ...
- 算法的优化(C语言描述)
算法的优化 算法的优化分为全局优化和局部优化两个层次.全局优化也称为结构优化,主要是从基本控制结构优化.算法.数据结构的选择上考虑:局部优化即为代码优化,包括使用尽量小的数据类型.优化表达式.优化赋值 ...
- 吴恩达机器学习笔记47-K均值算法的优化目标、随机初始化与聚类数量的选择(Optimization Objective & Random Initialization & Choosing the Number of Clusters of K-Means Algorithm)
一.K均值算法的优化目标 K-均值最小化问题,是要最小化所有的数据点与其所关联的聚类中心点之间的距离之和,因此 K-均值的代价函数(又称畸变函数 Distortion function)为: 其中
- PHP随机红包算法
2017年1月14日 14:19:14 星期六 一, 整体设计 算法有很多种, 可以自行选择, 主要的"架构" 是这样的, 用redis decr()命令去限流, 用mysql去记 ...
- 支持向量机-完整Platt-SMO算法加速优化
完整版SMO算法与简单的SMO算法: 实现alpha的更改和代数运算的优化环节一模一样,唯一的不同就是选择alpha的方式.完整版应用了一些能够提速的方法. 同样使用Jupyter实现,后面不在赘述 ...
- php微信红包算法
微信红包算法.php /**生成红包的函数*/ function getRandMoney($totalMoney, $totalPeople=2, $miniMoney=1){ $randRemai ...
- 最优化算法——常见优化算法分类及总结
之前做特征选择,实现过基于群智能算法进行最优化的搜索,看过一些群智能优化算法的论文,在此做一下总结. 在生活或者工作中存在各种各样的最优化问题,比如每个企业和个人都要考虑的一个问题"在一定成 ...
- JavaScript的妙与乐(一)之 函数优化
JavaScript的妙与乐系列文章主要是展示一些JavaScript上面比较好玩一点的特性和一些有用的技巧,里面很多内容都是我曾经在项目中使用过的一些内容(当然,未必所有技巧的使用频率都很高^_^) ...
随机推荐
- subclipse解决JavaHL不可用的问题
最近在配置eclipse的svn插件,发现在部分机器上无法启用javaHL,很是奇怪,尤其是在windows环境下,网上搜索到的解决方案太复杂,居然还有说要安装slikSVN的,其实windows只需 ...
- 表单验证插件及一些属性的用法 validate
注:必须配合jq使用. 基本语法 例如有如下: <form action="" method="post" id="demoForm" ...
- 零基础逆向工程36_Win32_10_互斥体_互斥体与临界区的区别
1 引言 讲了第二个内核对象,互斥体.前面已经学过一个内核对象,线程.这节讲两个函数,WaitForSingleObject()和WaitForMultipleObjects().因此这两个函数是根据 ...
- Win7安装软件,装到microsoft.vc90.crt时卡住的解决办法
在安装某些程序的时候,可能会出现下列提示:an error occured during the installation of assembly ‘microsoft.vc90.crt,versio ...
- 腾讯bugly 映射用法
package com.tencent.bugly.agent; import android.app.Activity; import android.content.Context; import ...
- [UnityShader]点染队列、ZWrite和ZTest
转载自:http://www.myexception.cn/mobile/1902628.html [UnityShader]渲染队列.ZWrite和ZTest 参考链接:http://blog.cs ...
- 【Android学习入门】Android studio基本设置
1.背景设置 依次选择File->Settings-->Appearance & Behaviour->Apprearance,然后勾选 show line number. ...
- django choice字段模板展示
class UserInfo(AbstractUserInfo): """ 用户表 """ gender_choice = ( (1,&qu ...
- Python中的Numpy、SciPy、MatPlotLib安装与配置
Python安装完Numpy,SciPy和MatplotLib后,可以成为非常犀利的科研利器.网上关于这三个库的安装都写得非常不错,但是大部分人遇到的问题并不是如何安装,而是安装好后因为配置不当,在使 ...
- php:定义时间跳转到指定页面
我们想要定义延迟时间,再跳转到指定页面,只要用header()即可,语法: header("Refresh:延迟时间;url=要跳转的页面"); 例子: 注意注意:我们在heade ...