在实际的开发过程中,经常会用到一些几率的时间,例如有这样一个奖励的数组:
ipad的几率是2%,金币的几率是80%,钻石币的几率是10%,经验值的几率是8%
要求写一个函数来计算你得到的是什么.
<?php
$data = array(
'iapd' => 2,
'coin' => 80,
'cash' => 10,
'xp' => 8
);
$rs = get_weight_random($data);
function get_weight_random($weight) {
$point = 0;
foreach ($weight as $value) {
if ($value < 1) {
$temp_value = explode('.', $value);
$point = strlen(array_pop($temp_value));
}
}
$times = pow(10, $point);
$weight_rand = mt_rand(1, array_sum($weight) * $times);
asort($weight);
$base = 0;
foreach ($weight as $key => $value) {
$min = $base * $times + 1;
$max = ($base + $value) * $times;
if ($weight_rand >= $min && $weight_rand <= $max) {
break;
} else {
$base += $value;
}
}
return $key;
}
分享到:
相关推荐
本文实例讲述了PHP实现的权重算法。分享给大家供大家参考,具体如下: 假设有数据: $data = array ( array ( 'id' => 1, 'name' => '张三', 'weight' => 5 ), array ( 'id' => 2, 'name' => '王五', '...
本压缩包提供的"百度网站权重查询工具PHP版"就是一个这样的应用,它能够快速获取并分析特定关键词在百度搜索中的权重数据。 **实现原理** 该工具可能基于以下原理工作: 1. **API调用**:可能通过调用百度或其他第...
值得注意的是,虽然自动推送可以加快收录,但并不保证所有推送的内容都会被百度立即收录,这还取决于内容质量、网站权重等多种因素。因此,持续提供高质量的内容和保持良好的网站结构同样重要。 总的来说,这个...
这可以通过PHP的`asort()`、`arsort()`或`usort()`函数来实现,具体取决于我们希望高权重的标签出现在前面还是后面。 4. HTML渲染:根据权重生成不同大小的标签。可以使用CSS样式来控制字体大小,将权重与字体大小...
在`getUsers`方法中,根据用户队列中的用户数量和时间间隔来决定取用户id的方式,保证在用户量较少时也能尽可能平均地分配负载。 在代码实现中,当用户队列中的用户数量达到一定数量时,根据服务器的权重占比从队列...
// 每次取 100 人 const num = 100; // 上次取值时间,秒级时间戳 public $last_time; // 权重 machine=>weight public $machines = array( 'a' => 3, // 0.6 'b' => 1, // 0.2 'c' => 1 // 0.2 ); // ...
其中,\( PR(A) \) 是网页A的PageRank值,\( d \) 是阻尼因子,通常取0.85,\( PR(i) \) 是链接到A的所有网页的PageRank值,\( L(i) \) 是链接到网页i的总数。 4. **停止条件**:当PageRank值在连续几轮迭代后变化...
在PHP中实现这样的算法通常涉及到对元素的权重进行计算,然后再根据权重分布进行随机选择。 总的来说,`array_rand()` 函数是PHP处理数组时的一个强大工具,尤其在需要进行随机抽取操作时。结合其他编程技巧和算法...
两者各有优缺点,选择哪种语言取决于项目需求、开发团队技能和服务器环境。 SEO(Search Engine Optimization)是搜索引擎优化的缩写,旨在通过优化网站内容、结构和技术,提高网站在搜索引擎结果页的排名,从而...
具体来说,生成短网址时是不断地取余数(模54)然后累加到短网址字符串前面,并且每次循环都要除以54并减1。而在将短网址转换回数字时,则是根据每个字符在映射字符串中的位置,乘以其对应的54进制权重(pow(54,$i)...
对于其他常见的PHP整数操作,如取整、转换小数为整数、取余数等,PHP提供了多种函数,如 `round()`, `floor()`, `ceil()` 和 `abs()`。在处理整数数据类型时,了解这些函数的用法是十分必要的。 在实际开发中,特别...
- 将前面得到的总和除以10取余数,如果余数为0,那么原始输入的信用卡号被认为是有效的;反之,可能存在输入错误或者卡片无效。 PHP代码实现如下: ```php function check_card($card) { // 验证输入是否为数字 ...
首先,要启用Memcache或Memcached作为session存储,需要设置`session.save_handler`为`memcache`或`memcached`,具体取决于你安装的是哪个扩展。此外,还需要设置`session.save_path`来指定连接到的Memcache服务器...
加权计算的规则是将前12位数字分别乘以特定的系数(分别为1、3交替),然后求得的和对10取余数,余数再用10减去得到的差值,该差值即为校验码。如果差值是10,则校验码用数字“0”表示;如果是11,则用字母“X”表示...
从给定的PHP代码片段来看,它主要包含了四个功能函数:`get_xingzuo`、`get_shengxiao`、`get_xingbie` 和 `isIdCard`,分别用于从身份证号码中获取星座、生肖、性别以及验证身份证号码的有效性。下面将详细解析这些...
网站的权重往往取决于其他高质量网站对其的引用或链接,权重高的网站可以传递其一部分权重给链接的网站。周公解梦大全 v2.3 可能包含了一些策略,如内链优化、外链建设等,以增加网站的权重,从而提高在搜索结果中的...
实现301重定向的方法多种多样,具体取决于你的网站所使用的服务器平台和技术。以下是常见的几种实现方式: 1. **ASP程序**:可以在index.asp文件头部添加VBScript代码,设置Response.Status为301 Moved Permanently...
提取的关键词将按照权重排序。 **实现代码**: ```php function getkey($contents) { // 移除HTML标签 $rows = strip_tags($contents); // 定义需要替换的字符串数组 $arr = array(', '>', "\s", "\r\n", "\n...
)20 、PR值查询(PR值全称为PageRank(网页级别),取自Google的创始人LarryPage。它是Google排名运算法则(排名公式)的一部分,是Google用于用来标识网页的等级/重要性的一种方法,是Google用来衡量一个网站的好坏...
在二进制系统中,每个元素只能取0或1两个值,这在编码、信息传输、数据压缩等方面有特殊意义。例如,在机器学习中的逻辑回归或支持向量机模型,二进制数据可以用来表示类别标签或特征。通过最小二乘法,我们可以找到...