当前位置:首页 > 编程教程 > php技术文章 > PHP实现微信红包金额拆分试玩的算法示例

PHP实现微信红包金额拆分试玩的算法实例详解

  • 发布时间:
  • 作者:码农之家
  • 点击:117

这篇文章主要知识点是关于PHP、微信红包算法、的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

PHP7.0+MySQL网站开发全程实例
  • 类型:网站设计大小:165.8 MB格式:PDF作者:于荷云
立即下载

Tags:PHP 微信红包算法 

PHP实现微信红包金额拆分试玩的算法示例

本文介绍了PHP实现微信红包金额拆分试玩的算法示例,分享给大家,有兴趣的可以看一下:

<?php
// 新年红包金额拆分试玩

class CBonus
{
  public $bonus;//红包
  public $bonus_num;//红包个数
  public $bonus_money;//红包总金额
  public $money_single_max;//单个红包限额
  
  public function __construct(){
    $this->bonus_num = 10;
    $this->bonus_money = 200;
    $this->money_single_max = 60;
  }

  private function randomFloat($min = 0, $max = 1) {
    $mt_rand = mt_rand();
    $mt_getrandmax = mt_getrandmax();
    echo 'mt_rand=' . $mt_rand . ', mt_getrandmax=' . $mt_getrandmax . '<hr/>';
    return $min + $mt_rand / $mt_getrandmax * ($max - $min);
  }
  //计算
  public function compute()
  {
    $this->bonus = array();
    $bonus_money_temp = $this->bonus_money;
    $money_single_max = $this->money_single_max;
    $i = 1;
    while($i < $this->bonus_num)
    {
      if ($money_single_max > $bonus_money_temp)
      {
        $money_single_max = floatval(sprintf("%01.2f", $bonus_money_temp / 2));//剩余金额不够分时,把剩余金额的一半作为备用金
      }
      $bonus_money_rad = $this->randomFloat(0.01, $money_single_max);//一个红包随机金额 最小的1分钱
      $bonus_money_rad = floatval(sprintf("%01.2f", $bonus_money_rad));
      $bonus_money_temp = $bonus_money_temp - $bonus_money_rad ;//待分配的总剩余金额
      $bonus_money_temp = floatval(sprintf("%01.2f", $bonus_money_temp));
      $this->bonus[] = $bonus_money_rad;
      //echo $bonus_money_rad . ',' . $bonus_money_temp . '<hr/>';
      $i++;
    }
    $this->bonus[] = $bonus_money_temp;//分配剩余金额给最后一个红包
  }
  //打印
  public function output(){
    $total = 0;
    foreach($this->bonus as $k => $v)
    {
      echo '红包' . ($k+1) . '=' . $v . '<br/>';
      $total += $v;
    }
    echo '红包总金额:'.$total;
  }
}

$CBonus = new CBonus();
$CBonus->compute();
$CBonus->output();
?>

演示结果:

红包1=12.36
红包2=24.37
红包3=42.71
红包4=36.92
红包5=25.84
红包6=23.17
红包7=15.92
红包8=1.35
红包9=7.75
红包10=9.61
红包总金额:200
 
红包1=24.59
红包2=17.66
红包3=29.67
红包4=32.34
红包5=12.67
红包6=37.15
红包7=17.41
红包8=15.23
红包9=6.13
红包10=7.15
红包总金额:200

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。

以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。

PHP 相关电子书
学习笔记
网友NO.137270

PHP简单数据库操作类实例【支持增删改查及链式操作】

本文实例讲述了PHP简单数据库操作类。分享给大家供大家参考,具体如下: 在进行项目开发时,数据库是必不可少的东西了。但是很多时候却又对数据库SQL语句的繁杂而感到头疼。提供一个我自己使用的数据库操作类(模型Model),供大家使用。支持增、删、改、查,支持链式操作,代码不到100行,非常小巧方便,很适合小项目的快速部署使用。 /**** @Authot: summer** @E-mail: wenghang1228@me.com** @Data: 2015-02-06** @Project: 数据库操作类Model** @Version:1.0** @版权所有:夏天的风————记录夏天对技术的追求与生活的热爱** @网址: http://www.xtwind.com**/class Model{ public $field; public $tabname; public $where; public $order; public $limit; //构造函数,链接数据库,给表赋值 function __construct($tabname){ mysql_connect(HOST,USER,PASSWORD); mysql_select_db(DBNAME); mysql_query("set names utf8"); $this-tabname=$tabname; } //组……

网友NO.719046

PHP学习之SQL语句快速入门

Select * from tablename SQL select * from employees; Select select list from tablename SQL select employee_id,first_name from employees; Select distinct … from tablename SQL select distinct manager_id from employees; ||连接符使用以及 加减乘除以及括号的使用 SQL select employee_id,first_name||'.'||last_name,salary*(1+0.1)/100,manager_id 2 from employees; +-做正负号使用 SQL select -salary from employees; ,,,=,!=等比较操作符 SQL select * from employees where salary 13000; SQL select * from employees where salary 13000; SQL select * from employees where salary 13000; SQL select * from employees where salary =13000; In SQL select -salary from employees where employee_id in (100,101,102); SQL select -salary from employees where employee_id in (select employee_id from employees); not in SQL select -salary from employees where employee_id not in (100,101,102); Any(比任意一个都) select * from employees where employee_id any(100,101,102); some 是 SQL-92 标准的……

网友NO.344397

PHP实现对数组分页处理实例详解

本文实例讲述了PHP实现对数组分页处理方法。分享给大家供大家参考,具体如下: 最近用到了用数组数据分页,这里整理了一下,具体代码如下: ?phpclass PaginationArray{ public $pageArray=array(); //数组 public $pageSize=10; //每页显示记录数 public $current= 1; //当前页 private $total=0; //总页数 private $prev=0; //上一页 private $next=0; //下一页 public $argumetsOther='';//设置参数 function __construct($array=array(),$pageSize=10,$current=1){ $this-pageArray=$array; $this-pageSize=$pageSize; $this-current=$current; } /*通过数组进行初始化 * * 数组为关联数组,参数索引为pageArray,pageSize,current * */ function setArguments($arr){ if (is_array($arr)){ $this-pageArray=$arr['pageArray']; $this-pageSize=$arr['pageSize']; $this-current=$arr['current']; }else{ return ; } } //返回链接 function page(){ $_return=array(); /*calculator*/ $this-total=ceil(Count($this-pageArray)/$this-pageSize); $this-……

网友NO.986082

PHP简单检测网址是否能够正常打开的方法

本文实例讲述了PHP简单检测网址是否能够正常打开的方法。分享给大家供大家参考,具体如下: 这是一个检测网址是否能正常打开的PHP代码,通过下面的代码检测一个网址是否能正常访问,如果正常则会返回http状态码200的值,如果为其它则不正常;这个代码我们可以用到很多地方,例如缓存友情链接的ICO图标时就可以用到,缓存时先检测网站是否正常,如果正常就缓存ICO图标,否则调用一个默认的图标文件。 代码如下: ?php/* * Created on 2016-9-4 * */ function httpcode($url){ $ch = curl_init(); $timeout = 3; curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); curl_setopt($ch,CURLOPT_URL,$url); curl_exec($ch); return $httpcode = curl_getinfo($ch,CURLINFO_HTTP_CODE); curl_close($ch);}echo "判断码农之家的链接:".httpcod……

网友NO.531146

PHP调用接口用post方法传送json数据的实例

首先要把数据转换成json格式,再通过curl方法调用接口并传参数 代码如下: $keyword = urlencode($_POST['keyword']);$parameters = json_encode(array('keyWord'=$keyword,'areaCode'='*'));$post_data['appToken'] = "323ds7674354fds32fdsda60173";//随便写的$post_data['parameters'] = $parameters;$url = 'http://serde.com/compadddvd/index';//随便写的$ch = curl_init();curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);//用post方法传送参数curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);$response = curl_exec($ch);curl_close($ch); 之后就返回数据即可。 以上这篇PHP调用接口用post方法传送json数据的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。 ……

<
1
>

电子书 编程教程 PC软件下载 安卓软件下载

Copyright 2018-2020 xz577.com 码农之家

本站所有电子书资源不再提供下载地址,只分享来路

免责声明:网站所有作品均由会员网上搜集共同更新,仅供读者预览及学习交流使用,下载后请24小时内删除

版权投诉 / 书籍推广 / 赞助:QQ:520161757