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 18 PHP
PHP音乐采集(部分代码)
Feb 14 PHP
PHP程序61条面向对象分析设计的经验小结
Nov 12 PHP
php数组对百万数据进行排除重复数据的实现代码
Jun 08 PHP
php防盗链的常用方法小结
Jul 02 PHP
discuz的php防止sql注入函数
Jan 17 PHP
php图片的裁剪与缩放生成符合需求的缩略图
Jan 11 PHP
利用谷歌 Translate API制作自己的翻译脚本
Jun 04 PHP
PHP代码实现表单数据验证类
Jul 28 PHP
jQuery+Ajax+PHP“喜欢”评级功能实现代码
Oct 08 PHP
全面解读PHP的人气开发框架Laravel
Oct 15 PHP
PHP实现求两个字符串最长公共子串的方法示例
Nov 17 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 正则学习实例
2008/07/30 PHP
PHPEXCEL 使用小记
2013/01/06 PHP
Zend Framework教程之Zend_Controller_Plugin插件用法详解
2016/03/07 PHP
PHP环境搭建(php+Apache+mysql)
2016/11/14 PHP
可兼容php5与php7的cURL文件上传功能实例分析
2018/05/11 PHP
js window.event对象详尽解析
2009/02/17 Javascript
Javascript 同时提交多个Web表单的方法
2009/02/19 Javascript
JavaScript 序列化对象实现代码
2009/12/18 Javascript
js弹窗代码 可以指定弹出间隔
2010/07/03 Javascript
js类型检查实现代码
2010/10/29 Javascript
javascript 冒泡排序 正序和倒序实现代码
2010/12/14 Javascript
一个通过script自定义属性传递配置参数的方法
2014/09/15 Javascript
chrome浏览器当表单自动填充时如何去除浏览器自动添加的默认样式
2015/10/09 Javascript
使用jQuery实现Web页面换肤功能的要点解析
2016/05/12 Javascript
Javascript中for循环语句的几种写法总结对比
2017/01/23 Javascript
JavaScript数组迭代方法
2017/03/03 Javascript
浅析JavaScript中的特殊数据类型
2017/12/15 Javascript
详解NodeJs开发微信公众号
2018/05/25 NodeJs
微信小程序学习笔记之表单提交与PHP后台数据交互处理图文详解
2019/03/28 Javascript
微信小程序添加插屏广告并设置显示频率(一天一次)
2019/12/06 Javascript
vue打包npm run build时候界面报错的解决
2020/08/13 Javascript
Python数据库的连接实现方法与注意事项
2016/02/27 Python
python 从csv读数据到mysql的实例
2018/06/21 Python
python3 selenium自动化 下拉框定位的例子
2019/08/23 Python
python实现简单银行管理系统
2019/10/25 Python
python socket通信编程实现文件上传代码实例
2019/12/14 Python
Python将QQ聊天记录生成词云的示例代码
2021/02/10 Python
施华洛世奇英国官网:SWAROVSKI英国
2017/03/13 全球购物
DC Shoes官网:美国滑板鞋和服饰品牌
2017/09/03 全球购物
项目经理岗位职责
2013/11/11 职场文书
人力资源部培训专员岗位职责
2014/01/02 职场文书
员工薪酬福利制度
2014/01/17 职场文书
公司会议策划方案
2014/05/17 职场文书
秋季校运会广播稿100字
2014/09/18 职场文书
2015年人力资源工作总结
2015/04/08 职场文书
新的CSS 伪类函数 :is() 和 :where()示例详解
2022/08/05 HTML / CSS