PHP全概率运算函数(优化版) Webgame开发必备

 更新时间:2011年07月04日 22:22:37   作者:  
PHP全概率运算函数(优化版) Webgame开发必备,需要的朋友可以参考下。
复制代码 代码如下:

<?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素材图片上传、下载功能

    详解PHP素材图片上传、下载功能

    这篇文章主要介绍了PHP图片上传下载功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • PHP实现在线阅读PDF文件的方法

    PHP实现在线阅读PDF文件的方法

    这篇文章主要介绍了PHP实现在线阅读PDF文件的方法,十分的简单实用,有需要的小伙伴可以参考下。
    2015-06-06
  • Yii框架多语言站点配置方法分析【中文/英文切换站点】

    Yii框架多语言站点配置方法分析【中文/英文切换站点】

    这篇文章主要介绍了Yii框架多语言站点配置方法,结合实例形式分析了基于Yii框架实现中文/英文切换的多语言站点相关配置方法与操作注意事项,需要的朋友可以参考下
    2020-04-04
  • laravel自定义分页效果

    laravel自定义分页效果

    这篇文章主要为大家详细介绍了laravel自定义分页实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • php对包含html标签的字符串进行截取的函数分享

    php对包含html标签的字符串进行截取的函数分享

    这篇文章主要介绍了php对包含html标签的字符串进行截取的函数分享,相比普通的字符串截取更为强大,用在一些特殊场合,需要的朋友可以参考下
    2014-06-06
  • Symfony2框架创建项目与模板设置实例详解

    Symfony2框架创建项目与模板设置实例详解

    这篇文章主要介绍了Symfony2框架创建项目与模板设置的方法,结合实例形式详细分析了Symfony2框架的具体步骤与详细实现代码,需要的朋友可以参考下
    2016-03-03
  • PHP图像处理类库及演示分享

    PHP图像处理类库及演示分享

    近期需要做一些图像处理方面的学习和研究,首要任务就是选择一套合适的图像处理类库。于是参考其他类库自己编写了一个简单的,仅仅实现了指定文字内容创建图片(不支持中文)、创建验证码图片、创建缩略图,有需要的小伙伴可以参考下。
    2015-05-05
  • php模拟ping命令(php exec函数的使用方法)

    php模拟ping命令(php exec函数的使用方法)

    使用php模拟我们常用的DOS命令ping命令的方法,这中间用到了exec函数并做函数解释,还有相关函数system的使用。
    2013-10-10
  • Codeigniter里的无刷新上传的实现代码

    Codeigniter里的无刷新上传的实现代码

    这篇文章主要介绍了Codeigniter里的无刷新上传的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • Yii2实现跨mysql数据库关联查询排序功能代码

    Yii2实现跨mysql数据库关联查询排序功能代码

    本篇文章主要介绍了Yii2实现跨mysql数据库关联查询排序功能示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-02-02

最新评论