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新手上路(十一)
Oct 09 PHP
PHP Smarty生成EXCEL文档的代码
Aug 23 PHP
php页面缓存ob系列函数介绍
Oct 18 PHP
PHP5.5和之前的版本empty函数的不同之处
Jun 13 PHP
去掉destoon资讯内容页keywords关键字自带的文章标题的方法
Aug 21 PHP
PHP框架自动加载类文件原理详解
Jun 06 PHP
实例讲解YII2中多表关联的使用方法
Jul 21 PHP
PHP date()格式MySQL中插入datetime方法
Jan 29 PHP
PHP5.6.8连接SQL Server 2008 R2数据库常用技巧分析总结
May 06 PHP
详解no input file specified 三种解决方法
Nov 29 PHP
PHP实现文件上传操作和封装
Mar 04 PHP
php如何实现数据库的备份和恢复
Nov 30 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
JS 网站性能优化笔记
2011/05/24 PHP
thinkphp视图模型查询提示ERR: 1146:Table 'db.pr_order_view' doesn't exist的解决方法
2014/10/30 PHP
php中explode的负数limit用法分析
2015/02/27 PHP
document 和 document.all 分别什么时候用
2006/06/22 Javascript
js call方法详细介绍(js 的继承)
2013/11/18 Javascript
原生js实现fadein 和 fadeout淡入淡出效果
2014/06/05 Javascript
使用jQuery+EasyUI实现CheckBoxTree的级联选中特效
2015/12/06 Javascript
实例讲解jquery中mouseleave和mouseout的区别
2016/02/17 Javascript
js获取客户端操作系统类型的方法【测试可用】
2016/05/27 Javascript
省市二级联动小案例讲解
2016/07/24 Javascript
利用pm2部署多个node.js项目的配置教程
2017/10/22 Javascript
Element-ui DatePicker显示周数的方法示例
2019/07/19 Javascript
vue实现设置载入动画和初始化页面动画效果
2019/10/28 Javascript
深入理解redux之compose的具体应用
2020/01/12 Javascript
vue 使用async写数字动态加载效果案例
2020/07/18 Javascript
vuex存取值和映射函数使用说明
2020/07/24 Javascript
Vue之封装公用变量以及实现方式
2020/07/31 Javascript
使用实现XlsxWriter创建Excel文件并编辑
2018/05/04 Python
python3将视频流保存为本地视频文件
2018/06/20 Python
python验证身份证信息实例代码
2019/05/06 Python
Python Django框架单元测试之文件上传测试示例
2019/05/17 Python
python+opencv像素的加减和加权操作的实现
2019/07/14 Python
python修改FTP服务器上的文件名
2019/09/11 Python
pyinstaller将含有多个py文件的python程序做成exe
2020/04/29 Python
python实现将中文日期转换为数字日期
2020/07/14 Python
python实现canny边缘检测
2020/09/14 Python
friso美素佳儿官方海外旗舰店:荷兰原产原罐
2017/07/03 全球购物
澳大利亚二手奢侈品网站:Modsie
2019/09/23 全球购物
商务日语毕业生自荐信
2013/11/23 职场文书
九年级英语教学反思
2014/01/31 职场文书
求职自荐信怎么写
2014/03/06 职场文书
祖国在我心中演讲稿450字
2014/09/05 职场文书
工作检讨书怎么写
2015/01/23 职场文书
浅析CSS在DevTools 中架构演变
2021/10/05 HTML / CSS
源码分析Redis中 set 和 sorted set 的使用方法
2022/03/22 Redis
Redis 操作多个数据库的配置的方法实现
2022/03/23 Redis