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 02 PHP
MySQL的FIND_IN_SET函数使用方法分享
Mar 27 PHP
PHP写的求多项式导数的函数代码
Jul 04 PHP
深入PHP内存相关的功能特性详解
Jun 08 PHP
php模拟ping命令(php exec函数的使用方法)
Oct 25 PHP
PHP中ob_start函数的使用说明
Nov 11 PHP
PHP连接SQLServer2005方法及代码
Dec 26 PHP
thinkphp模板输出技巧汇总
Nov 24 PHP
php通过前序遍历树实现无需递归的无限极分类
Jul 10 PHP
PHP模板引擎Smarty内建函数section,sectionelse用法详解
Apr 11 PHP
nginx下安装php7+php5
Jul 31 PHP
Yii2.0 RESTful API 基础配置教程详解
Dec 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
PHP CURL模拟登录新浪微博抓取页面内容 基于EaglePHP框架开发
2012/01/16 PHP
一个PHP实现的轻量级简单爬虫
2015/07/08 PHP
PHP文件操作详解
2016/12/30 PHP
PHP 使用二进制保存用户状态的实例
2018/01/29 PHP
详解Laravel服务容器的绑定与解析
2019/11/05 PHP
nginx 设置多个站跨域
2021/03/09 Servers
JQuery jsonp 使用示例代码
2009/08/12 Javascript
jQuery lazyload 的重复加载错误以及修复方法
2010/11/19 Javascript
一个简单的Node.js异步操作管理器分享
2014/04/29 Javascript
用jquery模仿的a的title属性的例子
2014/10/22 Javascript
用JavaScript动态建立或增加CSS样式表的实现方法
2016/05/20 Javascript
JavaScript函数节流的两种写法
2017/04/07 Javascript
bootstrap fileinput组件整合Springmvc上传图片到本地磁盘
2017/05/11 Javascript
前端构建工具之gulp的语法教程
2017/06/12 Javascript
IntelliJ IDEA 安装vue开发插件的方法
2017/11/21 Javascript
Vue监听一个数组id是否与另一个数组id相同的方法
2018/09/26 Javascript
vue的滚动条插件实现代码
2019/09/07 Javascript
使用Easyui实现查询条件的后端传递并自动刷新表格的两种方法
2019/09/09 Javascript
vue项目中js-cookie的使用存储token操作
2020/11/13 Javascript
[05:06]2017亚洲邀请赛DAC回顾片
2017/04/19 DOTA
Python深入学习之闭包
2014/08/31 Python
利用Python爬取微博数据生成词云图片实例代码
2017/08/31 Python
用Python写一段用户登录的程序代码
2018/04/22 Python
对pandas的行列名更改与数据选择详解
2018/11/12 Python
python 猴子补丁(monkey patch)
2019/06/26 Python
Python Opencv任意形状目标检测并绘制框图
2019/07/23 Python
什么是python的列表推导式
2020/05/26 Python
Python模拟伯努利试验和二项分布代码实例
2020/05/27 Python
Python自定义sorted排序实现方法详解
2020/09/18 Python
初任培训自我鉴定
2013/10/07 职场文书
倡议书格式范文
2014/04/14 职场文书
毕业论文答辩开场白
2015/05/27 职场文书
给学校的建议书400字
2015/09/14 职场文书
简历上的自我评价,该怎么写呢?
2019/06/13 职场文书
Python基于百度API识别并提取图片中文字
2021/06/27 Python
SQL Server代理:理解SQL代理错误日志处理方法
2021/06/30 SQL Server