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的access操作类
Apr 09 PHP
PHP正确配置mysql(apache环境)
Aug 28 PHP
php图片加中文水印实现代码分享
Oct 31 PHP
PHP和.net中des加解密的实现方法
Feb 27 PHP
使用pthreads实现真正的PHP多线程(需PHP5.3以上版本)
May 05 PHP
php导出csv格式数据并将数字转换成文本的思路以及代码分享
Jun 05 PHP
PHP SPL标准库之文件操作(SplFileInfo和SplFileObject)实例
May 11 PHP
浅谈php+phpStorm+xdebug配置方法
Sep 17 PHP
使用PHP实现生成HTML静态页面
Nov 18 PHP
Yii实现Command任务处理的方法详解
Jul 14 PHP
php 生成签名及验证签名详解
Oct 26 PHP
PHP开发api接口安全验证操作实例详解
Mar 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执行sql语句的写法
2009/03/10 PHP
php checkbox复选框值的获取与checkbox默认值输出方法
2010/05/15 PHP
php数组去除空值函数分享
2015/02/02 PHP
php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
2020/02/21 PHP
HTML-CSS群中单选引发的“事件”
2007/03/05 Javascript
List the UTC Time on a Computer
2007/06/11 Javascript
Domino中运用jQuery读取视图内容的方法
2009/10/21 Javascript
jQuery响应鼠标事件并隐藏与显示input默认值
2014/08/24 Javascript
js中的json对象详细介绍
2014/10/29 Javascript
在JavaScript中操作数组之map()方法的使用
2015/06/09 Javascript
jquery validate表单验证插件
2016/09/06 Javascript
Javascript 动态改变imput type属性
2016/11/01 Javascript
Vue.js 表单控件操作小结
2018/03/29 Javascript
详解angular2.x创建项目入门指令
2018/10/11 Javascript
基于vue 实现表单中password输入的显示与隐藏功能
2019/07/19 Javascript
vue页面更新patch的实现示例
2020/03/25 Javascript
微信小程序实现组件顶端固定或底端固定效果(不随滚动而滚动)
2020/04/09 Javascript
webpack+vue.js构建前端工程化的详细教程
2020/05/10 Javascript
使用js和canvas实现时钟效果
2020/09/08 Javascript
Node 使用express-http-proxy 做api网关的实现
2020/10/15 Javascript
前端 javascript 实现文件下载的示例
2020/11/24 Javascript
python实现静态web服务器
2019/09/03 Python
Python使用多进程运行含有任意个参数的函数
2020/05/02 Python
详解css3 mask遮罩实现一些特效
2018/10/24 HTML / CSS
移动端HTML5开发神器之vconsole详解
2020/12/15 HTML / CSS
德国珠宝和手表在线商店:VALMANO
2019/03/24 全球购物
小蚁科技官方商店:YI Technology
2019/08/23 全球购物
科颜氏香港官方网店:Kiehl’s香港
2021/03/07 全球购物
关爱女孩行动实施方案
2014/03/13 职场文书
满月酒主持词
2014/03/27 职场文书
学校爱心捐款倡议书
2014/05/13 职场文书
班级出游活动计划书
2014/08/15 职场文书
少先队活动总结
2014/08/29 职场文书
干部考察材料范文
2014/12/24 职场文书
详解Python 3.10 中的新功能和变化
2021/04/28 Python
Python如何用re模块实现简易tokenizer
2022/05/02 Python