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 09 PHP
15种PHP Encoder的比较
Apr 17 PHP
8个出色的WordPress SEO插件收集
Feb 26 PHP
php后门URL的防范
Nov 12 PHP
smarty模板局部缓存方法使用示例
Jun 17 PHP
php多个文件及图片上传实例详解
Nov 10 PHP
PHP curl CURLOPT_RETURNTRANSFER参数的作用使用实例
Feb 07 PHP
php限制上传文件类型并保存上传文件的方法
Mar 13 PHP
Yii2 如何在modules中添加验证码的方法
Jun 19 PHP
Yii 2中的load()和save()示例详解
Aug 03 PHP
PHP 进度条函数的简单实例
Sep 19 PHP
PHP 7.4中使用预加载的方法详解
Jul 08 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通过get方法获得form表单数据方法总结
2018/09/12 PHP
延时重复执行函数 lLoopRun.js
2007/05/08 Javascript
JS 学习笔记 防止发生命名冲突
2009/07/30 Javascript
jquery 简短几句代码实现给元素动态添加及获取提示信息
2011/09/01 Javascript
jquery $.trim()去除字符串空格的实现方法【附图例】
2016/03/30 Javascript
Vue概念及常见命令介绍(1)
2016/12/08 Javascript
JavaScript中undefined和null的区别
2017/05/03 Javascript
ES6新特性之类(Class)和继承(Extends)相关概念与用法分析
2017/05/24 Javascript
详解如何在nuxt中添加proxyTable代理
2018/08/10 Javascript
加快Vue项目的开发速度的方法
2018/12/12 Javascript
javascript中数组的常用算法深入分析
2019/03/12 Javascript
微信小程序保持session会话的方法
2020/03/20 Javascript
Vue 401配合Vuex防止多次弹框的案例
2020/11/11 Javascript
Vue 数据响应式相关总结
2021/01/28 Vue.js
pygame学习笔记(2):画点的三种方法和动画实例
2015/04/15 Python
python使用PyGame播放Midi和Mp3文件的方法
2015/04/24 Python
Python2.x版本中maketrans()方法的使用介绍
2015/05/19 Python
对python生成业务报表的实例详解
2019/02/03 Python
使用Python3内置文档高效学习以及官方中文文档
2019/05/19 Python
Django框架模板文件使用及模板文件加载顺序分析
2019/05/23 Python
django中上传图片分页三级联动效果的实现代码
2019/08/30 Python
python 消除 futureWarning问题的解决
2019/12/25 Python
python ftplib模块使用代码实例
2019/12/31 Python
Python 排序最长英文单词链(列表中前一个单词末字母是下一个单词的首字母)
2020/12/14 Python
python中time包实例详解
2021/02/02 Python
New Balance澳大利亚官网:运动鞋和健身服装
2019/02/23 全球购物
圣彼得堡鲜花配送:Semicvetic
2020/09/15 全球购物
Java中的类包括什么内容?设计时要注意哪些方面
2012/05/23 面试题
空中乘务员岗位职责
2014/03/08 职场文书
社团2014年植树节活动总结
2014/03/11 职场文书
公司行政专员岗位职责
2014/08/24 职场文书
给医院的感谢信
2015/01/21 职场文书
2015年党支部公开承诺书
2015/01/22 职场文书
《詹天佑》教学反思
2016/02/20 职场文书
springcloud之Feign超时问题的解决
2021/06/24 Java/Android
看完这篇文章获得一些java if优化技巧
2021/07/15 Java/Android