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学习笔记 (1) 环境配置与代码调试
Jun 19 PHP
基于php socket(fsockopen)的应用实例分析
Jun 02 PHP
教你如何开启shopnc b2b2c 伪静态
Oct 21 PHP
php使用CURL伪造IP和来源实例详解
Jan 15 PHP
php注册登录系统简化版
Dec 28 PHP
PHP模板引擎Smarty之配置文件在模板变量中的使用方法示例
Apr 11 PHP
ThinkPHP实现更新数据实例详解(demo)
Jun 29 PHP
ThinkPHP框架实现数据增删改
May 07 PHP
PHP单例模式与工厂模式详解
Aug 29 PHP
PHP字典树(Trie树)定义与实现方法示例
Oct 09 PHP
PHP绕过open_basedir限制操作文件的方法
Jun 10 PHP
PHP设计模式入门之迭代器模式原理与实现方法分析
Apr 26 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
摘自织梦CMS中的图片处理类
2015/08/08 PHP
ThinkPHP和UCenter接口冲突的解决方法
2016/07/25 PHP
php微信开发之关注事件
2018/06/14 PHP
php链式操作的实现方式分析
2019/08/12 PHP
实现png图片和png背景透明(支持多浏览器)的方法
2009/09/08 Javascript
动态加载图片路径 保持JavaScript控件的相对独立性
2010/09/03 Javascript
菜鸟学习JavaScript小实验之函数引用
2010/11/17 Javascript
浅析jquery的作用与优势
2013/12/02 Javascript
js 判断控件获得焦点的示例代码
2014/03/04 Javascript
深入浅析knockout源码分析之订阅
2016/07/12 Javascript
jQuery ztree实现动态树形多选菜单
2016/08/12 Javascript
JavaScript中${pageContext.request.contextPath}取值问题及解决方案
2016/12/08 Javascript
详解js树形控件—zTree使用总结
2016/12/28 Javascript
深入理解Vue 单向数据流的原理
2017/11/09 Javascript
关闭Vue计算属性自带的缓存功能方法
2018/03/02 Javascript
使用vue-cli webpack 快速搭建项目的代码
2018/11/21 Javascript
详解React服务端渲染从入门到精通
2019/03/28 Javascript
vue中v-for循环选中点击的元素并对该元素添加样式操作
2020/07/17 Javascript
[56:48]FNATIC vs EG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
在Mac OS上部署Nginx和FastCGI以及Flask框架的教程
2015/05/02 Python
Python cookbook(数据结构与算法)从字典中提取子集的方法示例
2018/03/22 Python
python简易实现任意位数的水仙花实例
2018/11/13 Python
解决Django生产环境无法加载静态文件问题的解决
2019/04/23 Python
Pytorch 搭建分类回归神经网络并用GPU进行加速的例子
2020/01/09 Python
解决Python在导入文件时的FileNotFoundError问题
2020/04/10 Python
Python return语句如何实现结果返回调用
2020/10/15 Python
CSS3利用text-shadow属性实现多种效果的文字样式展现方法
2016/08/25 HTML / CSS
自主招生自荐信
2013/12/08 职场文书
病媒生物防治方案
2014/05/13 职场文书
公司的门卫岗位职责
2014/09/09 职场文书
科级干部群众路线教育实践活动对照检查材料思想汇报
2014/09/20 职场文书
党建工作整改措施
2014/10/28 职场文书
2015法院个人工作总结范文
2015/05/25 职场文书
小学六年级毕业感言
2015/07/30 职场文书
董事长秘书工作总结
2015/08/14 职场文书
Nginx实现负载均衡的项目实践
2022/03/18 Servers