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模板技术原理【一】
Jan 10 PHP
解析htaccess伪静态的规则
Jun 18 PHP
PHP实现把文本中的URL转换为链接的auolink()函数分享
Jul 29 PHP
php中convert_uuencode()与convert_uuencode函数用法实例
Nov 22 PHP
PHP文件缓存类实现代码
Oct 26 PHP
Zend Framework教程之Zend_Controller_Plugin插件用法详解
Mar 07 PHP
yii2使用ajax返回json的实现方法
May 14 PHP
PHP正则表达式处理函数(PCRE 函数)实例小结
May 09 PHP
Laravel 添加多语言提示信息的方法
Sep 29 PHP
laravel ORM关联关系中的 with和whereHas用法
Oct 16 PHP
tp5.0框架隐藏index.php入口文件及模块和控制器的方法分析
Feb 11 PHP
Nginx+php配置文件及原理解析
Dec 09 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
PHP 批量更新网页内容实现代码
2010/01/05 PHP
php读取javascript设置的cookies的代码
2010/04/12 PHP
用PHP实现Ftp用户的在线管理
2012/02/16 PHP
浏览器关闭后,能继续执行的php函数(ignore_user_abort)
2012/08/01 PHP
php中cookie实现二级域名可访问操作的方法
2014/11/11 PHP
Laravel 微信小程序后端实现用户登录的示例代码
2019/11/26 PHP
js 加载时自动调整图片大小
2008/05/28 Javascript
JS运行耗时操作的延时显示方法
2010/11/19 Javascript
JavaScript可否多线程? 深入理解JavaScript定时机制
2012/05/23 Javascript
jquery动态添加删除(tr/td)
2015/02/09 Javascript
JS清除文本框内容离开在恢复及鼠标离开文本框时触发js的方法
2016/01/12 Javascript
详解jQuery的表单验证插件--Validation
2016/12/21 Javascript
jQuery Validate插件自定义验证规则的方法
2016/12/27 Javascript
vue-cli中的webpack配置详解
2017/09/25 Javascript
微信小程序地图(map)组件点击(tap)获取经纬度的方法
2019/01/10 Javascript
vue路由导航守卫和请求拦截以及基于node的token认证的方法
2019/04/07 Javascript
Vue使用vue-recoure + http-proxy-middleware + vuex配合promise实现基本的跨域请求封装
2019/10/21 Javascript
vue cli4下环境变量和模式示例详解
2020/04/09 Javascript
vue实现评价星星功能
2020/06/30 Javascript
javascript利用canvas实现鼠标拖拽功能
2020/07/23 Javascript
Node.js path模块,获取文件后缀名操作
2020/11/07 Javascript
js canvas实现五子棋小游戏
2021/01/22 Javascript
Python数据可视化:顶级绘图库plotly详解
2019/12/07 Python
查看jupyter notebook每个单元格运行时间实例
2020/04/22 Python
python中zip()函数遍历多个列表方法
2021/02/18 Python
html5通过canvas实现刮刮卡效果示例分享
2014/01/27 HTML / CSS
捷克时尚网上商店:OTTO
2018/03/15 全球购物
FLIR美国官网:热成像, 夜视和红外摄像系统
2018/07/13 全球购物
自考生自我鉴定范文
2013/10/01 职场文书
金融管理毕业生求职信
2014/03/03 职场文书
低碳环保标语
2014/06/12 职场文书
2014年党员自我评价材料
2014/09/22 职场文书
护理专业自我评价
2015/03/11 职场文书
莫言诺贝尔获奖感言(全文)
2015/07/31 职场文书
导游词之四川熊猫基地
2020/01/13 职场文书
看完这篇文章获得一些java if优化技巧
2021/07/15 Java/Android