PHP全概率运算函数(优化版) Webgame开发必备_php教程-查字典教程网
PHP全概率运算函数(优化版) Webgame开发必备
PHP全概率运算函数(优化版) Webgame开发必备
发布时间:2016-12-29 来源:查字典编辑
摘要:复制代码代码如下:黑点出现概率99%,白点出现概率1%,测试结果:

复制代码 代码如下:

<?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教程学习
    编程开发子分类