PHP全概率运算函数(优化版) Webgame开发必备


Posted in PHP onJuly 04, 2011
<?php 
$setting = array( 
// 黑色概率 
0 => 0.99, 
// 白色概率 
1 => 0.01, 
); 
// Requires the GD Library 
header("Content-type: image/png"); 
$im = imagecreatetruecolor(256, 256) or die("Cannot Initialize new GD image stream"); 
$white = imagecolorallocate($im, 255, 255, 255); 
$start = microtime(true); 
for ($y=0; $y<256; $y++) { 
for ($x=0; $x<256; $x++) { 
if (random($setting) === 1) { 
imagesetpixel($im, $x, $y, $white); 
} 
} 
} 
$time = microtime(true) - $start; 
header("X-Exec-Time: ".$time); 
imagepng($im); 
imagedestroy($im); /** 
* 全概率计算 
* 
* @param array $p array('a'=>0.5,'b'=>0.2,'c'=>0.4) 
* @return string 返回上面数组的key 
* @author Lukin <my@lukin.cn> 
*/ 
function random($ps){ 
static $arr = array(); $key = md5(serialize($ps)); 
if (!isset($arr[$key])) { 
$max = array_sum($ps); 
foreach ($ps as $k=>$v) { 
$v = $v / $max * 10000; 
for ($i=0; $i<$v; $i++) $arr[$key][] = $k; 
} 
} 
return $arr[$key][mt_rand(0,count($arr[$key])-1)]; 
} 
?>

黑点出现概率99%,白点出现概率1%,测试结果:
PHP全概率运算函数(优化版) Webgame开发必备

PHP全概率运算函数(优化版) Webgame开发必备

PHP 相关文章推荐
php输出表格的实现代码(修正版)
Dec 29 PHP
php数组函数序列之rsort() - 对数组的元素值进行降序排序
Nov 02 PHP
php检测图片木马多进制编程实践
Apr 11 PHP
深入HTTP响应状态码速查表的详解
Jun 07 PHP
一个简单的php加密解密函数(动态加密)
Jun 19 PHP
PHP中数据类型转换的三种方式
Apr 02 PHP
PHP版QQ互联OAuth示例代码分享
Jul 05 PHP
使用PHP进行微信公众平台开发的示例
Aug 21 PHP
PHP扩展开发教程(总结)
Nov 04 PHP
php集成动态口令认证
Jul 21 PHP
layui框架实现文件上传及TP3.2.3(thinkPHP)对上传文件进行后台处理操作示例
May 12 PHP
PHP通过curl获取接口URL的数据方法
May 31 PHP
php守护进程 加linux命令nohup实现任务每秒执行一次
Jul 04 #PHP
ajax 的post方法实例(带循环)
Jul 04 #PHP
php高级编程-函数-郑阿奇
Jul 04 #PHP
php 日期和时间的处理-郑阿奇(续)
Jul 04 #PHP
php 目录与文件处理-郑阿奇(续)
Jul 04 #PHP
第4章 数据处理-php正则表达式-郑阿奇(续)
Jul 04 #PHP
第4章 数据处理-php字符串的处理-郑阿奇(续)
Jul 04 #PHP
You might like
文件上传程序的全部源码
2006/10/09 PHP
PHP+Ajax实现上传文件进度条动态显示进度功能
2018/06/04 PHP
父窗口获取弹出子窗口文本框的值
2006/06/27 Javascript
javascript的对话框详解与参数
2007/03/08 Javascript
DOM和XMLHttpRequest对象的属性和方法整理
2012/01/04 Javascript
JQuery radio(单选按钮)操作方法汇总
2015/04/15 Javascript
JS获取文件大小方法小结
2015/12/08 Javascript
js H5 canvas投篮小游戏
2016/08/18 Javascript
jQuery快速高效制作网页交互特效
2017/02/24 Javascript
使用jQuery实现一个类似GridView的编辑,更新,取消和删除的功能
2017/03/15 Javascript
详解Vue.js搭建路由报错 router.map is not a function
2017/06/27 Javascript
node.js express中app.param的用法详解
2017/07/16 Javascript
微信小程序实现动态设置placeholder提示文字及按钮选中/取消状态的方法
2017/12/14 Javascript
JS遍历DOM文档树的方法实例详解
2018/04/03 Javascript
基于VuePress 轻量级静态网站生成器的实现方法
2018/04/17 Javascript
详解webpack模块化管理和打包工具
2018/04/21 Javascript
如何管理Vue中的缓存页面
2021/02/06 Vue.js
[11:27]《一刀刀一天》之DOTA全时刻20:TI4总奖金突破920W TS赛事分析
2014/06/18 DOTA
Python提示[Errno 32]Broken pipe导致线程crash错误解决方法
2014/11/19 Python
python中管道用法入门实例
2015/06/04 Python
解析Python中的__getitem__专有方法
2016/06/27 Python
python用reduce和map把字符串转为数字的方法
2016/12/19 Python
Pycharm+Python工程,引用子模块的实现
2020/03/09 Python
python爬虫---requests库的用法详解
2020/09/28 Python
python从Oracle读取数据生成图表
2020/10/14 Python
惠普新加坡官方商店:HP Singapore
2020/04/17 全球购物
化学实验员岗位职责
2013/12/28 职场文书
C++程序员求职信范文
2014/04/14 职场文书
教师一岗双责责任书
2014/04/16 职场文书
比赛口号大全
2014/06/10 职场文书
教师党的群众路线学习心得体会
2014/11/04 职场文书
2014年绿化工作总结
2014/12/09 职场文书
警告通知
2015/04/25 职场文书
幼儿园老师工作总结2015
2015/05/22 职场文书
表彰大会新闻稿
2015/07/17 职场文书
Python Django框架介绍之模板标签及模板的继承
2021/05/27 Python