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 相关文章推荐
ADODB结合SMARTY使用~超级强
Nov 25 PHP
让你的WINDOWS同时支持MYSQL4,MYSQL4.1,MYSQL5X
Dec 06 PHP
php select,radio和checkbox默认选择的实现方法
May 15 PHP
PHP排序之二维数组的按照字母排序实现代码
Aug 13 PHP
php的sso单点登录实现方法
Jan 08 PHP
服务器上配置PHP运行环境教程
Feb 12 PHP
php支持断点续传、分块下载的类
May 02 PHP
Linux php 中文乱码的快速解决方法
May 13 PHP
PHP Filter过滤器全面解析
Aug 09 PHP
PHP接口并发测试的方法(推荐)
Dec 15 PHP
PHP中Notice错误常见解决方法
Apr 28 PHP
php慢查询日志和错误日志使用详解
Feb 27 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 下载文件时自动添加bom头的方法实例
2014/01/10 PHP
laravel框架使用阿里云短信发送消息操作示例
2020/02/15 PHP
如何让动态插入的javascript脚本代码跑起来。
2007/01/09 Javascript
JS中字符问题(二进制/十进制/十六进制及ASCII码之间的转换)
2008/11/03 Javascript
js中if语句的几种优化代码写法
2011/03/12 Javascript
30个让人兴奋的视差滚动(Parallax Scrolling)效果网站
2012/03/04 Javascript
JavaScript访问CSS属性的几种方式介绍
2014/07/21 Javascript
纯javascript移动优先的幻灯片效果
2015/11/02 Javascript
详解JavaScript中的事件流和事件处理程序
2016/05/20 Javascript
微信小程序入门教程
2016/11/18 Javascript
详解vue-cli + webpack 多页面实例应用
2017/04/25 Javascript
AngularJS表单验证功能分析
2017/05/26 Javascript
jQuery EasyUI的TreeGrid查询功能实现方法
2017/08/08 jQuery
解读vue生成的文件目录结构及说明
2017/11/27 Javascript
自定义Vue组件打包、发布到npm及使用教程
2019/05/22 Javascript
vue请求数据的三种方式
2020/03/04 Javascript
js中位数不足自动补位扩展padLeft、padRight实现代码
2020/04/06 Javascript
鸿蒙系统中的 JS 开发框架
2020/09/18 Javascript
[01:56]《DOTA2》中文配音CG
2013/04/22 DOTA
[46:43]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第三局
2016/02/28 DOTA
在Django框架中伪造捕捉到的URLconf值的方法
2015/07/18 Python
Python实现按学生年龄排序的实际问题详解
2017/08/29 Python
Python3简单实例计算同花的概率代码
2017/12/06 Python
python实现支付宝当面付(扫码支付)功能
2018/05/30 Python
基于Python计算圆周率pi代码实例
2020/03/25 Python
python 实现两个线程交替执行
2020/05/02 Python
如何使用 Python 读取文件和照片的创建日期
2020/09/05 Python
用纯CSS3实现网页中常见的小箭头
2017/10/16 HTML / CSS
英国经典球衣网站:Classic Football Shirts
2017/05/20 全球购物
加拿大领先的时尚和体育零售商:Sporting Life
2019/12/15 全球购物
开业典礼主持词
2014/03/21 职场文书
科长个人四风问题整改措施思想汇报
2014/10/13 职场文书
党的群众路线教育实践活动方案
2014/10/31 职场文书
新员工考核评语
2014/12/31 职场文书
党员志愿者服务倡议书
2015/04/29 职场文书
2019已经过半,你知道年中工作总结该怎么写吗?
2019/07/03 职场文书