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 23 PHP
PHP简洁函数(PHP简单明了函数语法)
Jun 10 PHP
PHP提交表单失败后如何保留已经填写的信息
Jun 20 PHP
php抓取网站图片并保存的实现方法
Oct 29 PHP
thinkPHP查询方式小结
Jan 09 PHP
php生成图片验证码的方法
Apr 15 PHP
thinkphp3.2实现上传图片的控制器方法
Apr 28 PHP
php读取出一个文件夹及其子文件夹下所有文件的方法示例
Jun 15 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
Aug 30 PHP
PHP有序表查找之二分查找(折半查找)算法示例
Feb 09 PHP
详细对比php中类继承和接口继承
Oct 11 PHP
thinkphp5.1框架容器与依赖注入实例分析
Jul 23 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
摩卡咖啡
2021/03/03 咖啡文化
PHP获取网卡地址的代码
2008/04/09 PHP
PHP实现邮件群发的源码
2013/06/18 PHP
destoon设置自定义搜索的方法
2014/06/21 PHP
注释PHP和html混合代码的小技巧(分享)
2016/11/03 PHP
javascript innerText和innerHtml应用
2010/01/28 Javascript
通过Jscript中@cc_on 语句识别IE浏览器及版本的代码
2011/05/07 Javascript
ExtJS判断IE浏览器类型的方法
2014/02/10 Javascript
javascript 自定义回调函数示例代码
2014/09/26 Javascript
javascript+html5实现绘制圆环的方法
2015/07/28 Javascript
利用Node.js检测端口是否被占用的方法
2017/12/07 Javascript
浅谈Vue内置component组件的应用场景
2018/03/27 Javascript
如何将百度地图包装成Vue的组件的方法步骤
2019/02/12 Javascript
微信小程序实现拖拽功能
2019/09/26 Javascript
vue项目中使用particles实现粒子背景效果及遇到的坑(按钮没有点击响应)
2020/02/11 Javascript
JS+css3实现幻灯片轮播图
2020/08/14 Javascript
Vue中component标签解决项目组件化操作
2020/09/04 Javascript
如何在vue中使用video.js播放m3u8格式的视频
2021/02/01 Vue.js
python中关于时间和日期函数的常用计算总结(time和datatime)
2013/03/08 Python
浅谈Python程序与C++程序的联合使用
2015/04/07 Python
python类中super()和__init__()的区别
2016/10/18 Python
python中使用zip函数出现错误的原因
2018/09/28 Python
python中报错&quot;json.decoder.JSONDecodeError: Expecting value:&quot;的解决
2019/04/29 Python
wxPython电子表格功能wx.grid实例教程
2019/11/19 Python
Python用input输入列表的实例代码
2020/02/07 Python
如何验证python安装成功
2020/07/06 Python
css3 background属性调整增强介绍
2010/12/18 HTML / CSS
HTML5学习心得总结(推荐)
2016/07/08 HTML / CSS
凯伦·米莲女装网上商店:Karen Millen
2017/11/07 全球购物
初中音乐教学反思
2014/01/12 职场文书
整改落实自查报告
2014/11/05 职场文书
出国留学导师推荐信
2015/03/26 职场文书
高中美术教学反思
2016/02/17 职场文书
创业项目(超低成本创业项目)
2019/08/16 职场文书
Python入门之使用pandas分析excel数据
2021/05/12 Python
Python 如何利用ffmpeg 处理视频素材
2021/11/27 Python