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 addslashes及其他清除空格的方法是不安全的
Jan 25 PHP
PHP连接MySQL的2种方法小结以及防止乱码
Mar 11 PHP
CI框架中集成CKEditor编辑器的教程
Jun 09 PHP
phpmailer发送邮件之后,返回收件人是否阅读了邮件的方法
Jul 19 PHP
php判断一个数组是否为有序的方法
Mar 27 PHP
分享php分页的功能模块
Jun 16 PHP
PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题
Aug 12 PHP
PHP使用preg_split()分割特殊字符(元字符等)的方法分析
Feb 04 PHP
php UNIX时间戳用法详解
Feb 16 PHP
Laravel 框架返回状态拦截代码
Oct 18 PHP
Laravel使用swoole实现websocket主动消息推送的方法介绍
Oct 20 PHP
YII2框架中日志的配置与使用方法实例分析
Mar 18 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
模拟OICQ的实现思路和核心程序(二)
2006/10/09 PHP
PHP新手上路(十一)
2006/10/09 PHP
基于ThinkPHP实现的日历功能实例详解
2017/04/15 PHP
通过onmouseover选项卡实现img图片的变化
2014/02/12 Javascript
JS正则截取两个字符串之间及字符串前后内容的方法
2017/01/06 Javascript
vue.js 双层嵌套for遍历的方法详解, 类似php foreach()
2018/09/07 Javascript
详解Vue.js iview实现树形权限表(可扩展表)
2018/09/30 Javascript
js实现随机8位验证码
2020/07/24 Javascript
JavaScript 斐波那契数列 倒序输出 输出100以内的质数代码实例
2019/09/11 Javascript
vue请求服务器数据后绑定不上的解决方法
2019/10/30 Javascript
vue 解除鼠标的监听事件的方法
2019/11/13 Javascript
JS Html转义和反转义(html编码和解码)的实现与使用方法总结
2020/03/10 Javascript
基于ajax及jQuery实现局部刷新过程解析
2020/09/12 jQuery
Python标准库之多进程(multiprocessing包)介绍
2014/11/25 Python
Python中将dataframe转换为字典的实例
2018/04/13 Python
python async with和async for的使用
2019/06/20 Python
pandas 对日期类型数据的处理方法详解
2019/08/08 Python
Python 取numpy数组的某几行某几列方法
2019/10/24 Python
wxPython实现带颜色的进度条
2019/11/19 Python
python GUI库图形界面开发之PyQt5 MDI(多文档窗口)QMidArea详细使用方法与实例
2020/03/05 Python
150行Python代码实现带界面的数独游戏
2020/04/04 Python
Pytorch实验常用代码段汇总
2020/11/19 Python
使用CSS3来代替JS实现交互
2017/08/10 HTML / CSS
DKNY品牌官网:纽约大都会时尚风格
2016/10/20 全球购物
Expedia法国:全球最大在线旅游公司
2018/09/30 全球购物
Pretty You London官网:英国拖鞋和睡衣品牌
2019/05/08 全球购物
TALLY WEiJL法国网上商店:服装、时装及配饰
2019/08/31 全球购物
Java程序员面试90题
2013/10/19 面试题
测控技术与通信工程毕业生自荐信范文
2013/12/28 职场文书
财务会计人员求职的自我评价
2014/01/13 职场文书
大学生就业策划书范文
2014/04/04 职场文书
合作协议书范文
2014/08/20 职场文书
实验心得体会
2014/09/05 职场文书
庆祝儿童节标语
2014/10/09 职场文书
祝福语集锦:朋友新店开业祝福语
2019/12/10 职场文书
详细聊一聊mysql的树形结构存储以及查询
2022/04/05 MySQL