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%,测试结果:
开发必备-galgame必备软件">

时间: 2024-12-02 11:27:19

PHP全概率运算函数(优化版) Webgame开发必备的相关文章

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

复制代码 代码如下: <?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"); $w

响应式设计实战:IE10优化版cnBeta诞生记

中介交易 SEO诊断 淘宝客 云主机 技术大厅 这两年来,已经有不少互联网产品开始应用响应式设计,以跨越不同设备和浏览器的限制.而自从IE10发布之日起,各种声音就围绕在开发者们的周围.作为响应式设计的攻城利器,IE10增加了对十几种HTML5 API的支持,例如Web Sockets.Web Workers.历史API.拖曳API和文件API,访问微软IE10开发者指南可以看到完整的支持列表.而如何通过HTML5技术为一个传统布局的站点快速开发出基于瀑布流风格的响应式版,也是开发者们关注的热点

比较discuz和ecshop的截取字符串函数php版_php技巧

下面先给出两个版本函数的源代码以及简单测试,最后我会给出一个实用性更强的字符串截取函数.需要注意的是:这里讨论的字符串截取问题都是针对UTF-8编码的中文字符串. discuz版本 复制代码 代码如下: /** * [discuz] 基于PHP没有安装 mb_substr 等扩展截取字符串,如果截取中文字则按2个字符计算 * @param $string 要截取的字符串 * @param $length 要截取的字符数 * @param $dot 替换截掉部分的结尾字符串 * @return 返

取模和与运算的优化

1 //来自coolshell的一个代码. 1 <span style="color: #000000;">int steps = 64 * 1024 * 1024; 2 // Arbitrary number of steps 3 int lengthMod = arr.Length - 1; 4 for (int i = 0; i < steps; i++) 5 { 6     arr[(i * 16) & lengthMod]++;   // (x &a

&amp;#106avascript 小技巧之如何使用运算函数

函数|技巧|运算     这是一个特殊的内建函数eval包括了运算式子为其参数,运算元,并回传一个值. 这函数对于运算一个表示的数值字串而言非常有用,举例来看,从FORM所输入的值总是字串,但你也许想要拿来运算,那我该怎么办?? 下面的这一个例子包函了输入的文字栏位,应用的运算函数和显示结果的另一区块.假如你打了一个数值运算式在第一个栏位,并且按下了按钮,运算式便会开使运算, <SCRIPT> function compute(obj) { obj.result.value = eval(ob

JavaScript 小技巧之如何使用运算函数

javascript|函数|技巧|运算 这是一个特殊的内建函数eval包括了运算式子为其参数,运算元,并回传一个值. 这函数对于运算一个表示的数值字串而言非常有用,举例来看,从FORM所输入的值总是字串,但你也许想要拿来运算,那我该怎么办?? 下面的这一个例子包函了输入的文字栏位,应用的运算函数和显示结果的另一区块.假如你打了一个数值运算式在第一个栏位,并且按下了按钮,运算式便会开使运算, <SCRIPT> function compute(obj) { obj.result.value =

Vista SP1 Beta兔子优化版免去激活困扰

微软已经发布官方了vista SP1 Beta版,SP1没有加入新功能,而且还有可能影响原有的激活,超级兔子继续用原PreView 制作了新的兔子版Vista SP1 Beta,避免了这些问题,除了具备2007年10月最新的补丁.最新的未公开兼容包外,还有梦幻桌面.笔记本电源管理等加强包. 微软发布官方的Vista SP1 Beta版没有加入新功能,而且还有可能影响原有的激活,超级兔子继续用原PreView 制作了新的兔子版Vista SP1 Beta,避免了这些问题,除了具备2007年10月最

zxing-求android Zxing(二维码)优化版源码

问题描述 求android Zxing(二维码)优化版源码 求android Zxing(二维码)优化版源码 自己感觉Zxing扫描太慢了,需要优化,但是自己又不会求一份优化的代码... 感谢!!! 解决方案 看看这个是不是 http://download.csdn.net/detail/za1985751/4522131

【转】深度完美GhostXP_SP3快速装机优化版V2011.12

深度完美GhostXP_SP3快速装机优化版V2011.12 [白金品质 精品典范]深度完美GHOSTXPSP3快速装机优化版V2011.12=============================本系统主要适用于笔记本.品牌机,也支持组装兼容机,安装后自动激活,可供品牌机专卖店及普通用户安装使用,系统安装简便快速,10分钟内即可安装完成.注:光盘经过检测安全无毒,PE中的部分破解软件可能会被个别杀毒软件误报,请放心使用.系统格式:NTFS --------------------------