【一个算法示例:PHP实现开心消消乐】教程文章相关的互联网学习教程文章

PHP实现的折半查找算法示例

本文实例讲述了PHP实现的折半查找算法。分享给大家供大家参考,具体如下: 定义:折半查找技术,也就是二分查找。它的前提是线性表中的记录必须是关键码有序(通常从大到小有序),线性表必须采用顺序存储。 折半查找的基本思想:取中间记录作为比较对象,若给定值与中间记录的关键字,则在中间记录的关键字相等,则查找成功;若给定值小于中间记录的作伴去继续查找;若给定值大于中间记录的关键字,则在中间记录的右半区继续查找。...

PHP实现的最大正向匹配算法示例

本文实例讲述了PHP实现的最大正向匹配算法。分享给大家供大家参考,具体如下: 正向最大匹配算法:从左到右将待分词文本中的几个连续字符与词表匹配,如果匹配上,则切分出一个词。但这里有一个问题:要做到最大匹配,并不是第一次匹配到就可以切分的 。 函数中包含三个参数: $query 查询词 $dict 词典 $max_len 最大长度(这里默认值设置为15) 词典示例: $dict = array(脚本之家=>脚本之家,脚本下载=>脚本下载,JS编程=>JS...

php实现统计二进制中1的个数算法示例【图】

本文实例讲述了php实现统计二进制中1的个数算法。分享给大家供大家参考,具体如下: 问题 输入一个十进制整数,输出该数二进制表示中1的个数。其中负数用补码表示。 解决思路 这是个位运算的题目。 解法一:可以通过按位与操作,通过将每一位和1与操作来求出1的个数。 解法二(最优解):一个巧妙的方法,一个不为0的二进制数,肯定至少有一位是1,当这个数减一的时候,它的最后一位1会变为0,后边的所有0会变为1。比如10100,减一...

PHP有序表查找之插值查找算法示例【图】

本文实例讲述了PHP有序表查找之插值查找算法。分享给大家供大家参考,具体如下: 前言: 在前面我们介绍了二分查找,但是我们考虑一下,为什么一定要折半呢?而不是折四分之一或者更多? 打个比方,在英文词典里查找“apple”,你下意识里翻开词典是翻前面的书页还是后面的书页呢?如果再查“zoo”,你又会怎么查?显然你不会从词典中间开始查起,而是有一定目的地往前或往后翻。 同样,比如要在取值范围在 0 ~ 10000 之间的100个元...

PHP有序表查找之二分查找(折半查找)算法示例

本文实例讲述了PHP有序表查找之二分查找(折半查找)算法。分享给大家供大家参考,具体如下: 简介: 二分查找技术,又称为折半查找。它的前提是线性表中的记录必须是关键码有序(通常从小到达有序),线性表必须采用顺序存储。 基本思想: 在有序表中,取中间记录作为比较对象,若给定值与中间记录的关键字相等,则查找成功;若给定值小于中间记录的关键字,则在中间记录的左半区继续查找;若给定值大于中间记录的关键字,则在中间...

PHP实现的一致性HASH算法示例

本文实例讲述了PHP实现的一致性HASH算法。分享给大家供大家参考,具体如下: <?php // +---------------------------------------------------------------------- // | Perfect Is Shit // +---------------------------------------------------------------------- // | PHP实现:一致性HASH算法 // +---------------------------------------------------------------------- // | Author: alexander <gt199899@gmail.com> // ...

PHP实现的简单组词算法示例

本文实例讲述了PHP实现的简单组词算法。分享给大家供大家参考,具体如下: <?php //组词算法 function diyWords($arr,$m){$result = array();if ($m ==1){//只剩一个词时直接返回return $arr;}if ($m == count($arr)){$result[] = implode( , $arr);return $result;}$temp_firstelement = $arr[0];unset($arr[0]);$arr = array_values($arr);$temp_list1 = diyWords($arr, ($m-1));foreach ($temp_list1 as $s){$s = $temp_firstel...

PHP封装的非对称加密RSA算法示例

本文实例讲述了PHP封装的非对称加密RSA算法。分享给大家供大家参考,具体如下: 将php的openssl扩展中的非对称加密函数封装成一个Rsa类。 需要注意的是,在windows上,需要打开openssl的配置文件,请参照官方的openssl扩展安装文档。 在windows上安装openssl扩展 1、将php路径下的两个库文件libeay32.dll和ssleay32.dll复制到操作system32下 2、配置openssl配置文件的位置,在php的路径下,有文件extras/openssl/openssl.cnf,添加...

PHP实现的装箱算法示例

本文实例讲述了PHP实现的装箱算法。分享给大家供大家参考,具体如下: 贪婪法是一种不追求最优解,只希望得到较为满意解的方法。贪婪法一般可以快速得到满意的解,因为它省去了为找最优解要穷尽所有可能而必须耗费的大量时间。贪婪法常以当前情况为基础作最优选择,而不考虑各种可能的整体情况,所以贪婪法不要回溯。 例如平时购物找钱时,为使找回的零钱的硬币数最少,不考虑找零钱的所有各种发表方案,而是从最大面值的币种开始,...

PHP笛卡尔积实现算法示例

本文实例讲述了PHP笛卡尔积实现算法。分享给大家供大家参考,具体如下: <?php $arr = array(array(1,3,4,5),array(3,5,7,9),array(76,6,1,0)); /** ** 实现二维数组的笛卡尔积组合 ** $arr 要进行笛卡尔积的二维数组 ** $str 最终实现的笛卡尔积组合,可不写 ** @return array **/ function cartesian($arr,$str = array()){//去除第一个元素$first = array_shift($arr);//判断是否是第一次进行拼接if(count($str) > 1) {foreach (...

PHP实现的解汉诺塔问题算法示例【图】

本文实例讲述了PHP实现的解汉诺塔问题算法。分享给大家供大家参考,具体如下: 问题描述: 相传在古印度圣庙中,有一种被称为汉诺塔(Hanoi)的游戏。该游戏是在一块铜板装置上,有三根杆(编号A、B、C),在A杆自下而上、由大到小按顺序放置64个金盘(如下图)。游戏的目标:把A杆上的金盘全部移到C杆上,并仍保持原有顺序叠好。操作规则:每次只能移动一个盘子,并且在移动过程中三根杆上都始终保持大盘在下,小盘在上,操作过程中盘子...

PHP实现的服务器一致性hash分布算法示例

本文实例讲述了PHP实现的服务器一致性hash分布算法。分享给大家供大家参考,具体如下: <?php /*** 对服务器进行一致性hash分布算法*/ class HashRing {private $servers = array();private $nodeList = array();private $nodeHashList = array();private $nodeTotalNum = 0;private $virtualNodeNum = 32;private $keyHash = ;public function __construct($servers){$this->servers = $servers;foreach ($servers as $server) {f...

PHP实现的XXTEA加密解密算法示例

本文实例讲述了PHP实现的XXTEA加密解密算法。分享给大家供大家参考,具体如下: <?php /*** Xxtea 加密实现类*/ class xxtea {private function long2str($v, $w) {$len = count($v);$n = ($len -1) << 2;if ($w) {$m = $v[$len -1];if (($m < $n -3) || ($m > $n))return false;$n = $m;}$s = array ();for ($i = 0; $i < $len; $i++)$s[$i] = pack("V", $v[$i]);return $w ? substr(implode(, $s), 0, $n) : implode(, $s);}priv...

PHP实现的权重算法示例【可用于游戏根据权限来随机物品】

本文实例讲述了PHP实现的权重算法。分享给大家供大家参考,具体如下: 假设有数据: $data = array (array (id => 1,name => 张三,weight => 5),array (id => 2,name => 王五,weight => 10),array (id => 3,name => 李四,weight => 15), );要随机取出其中一条,并且不是完全随机,而是根据其中weight的数值,按照数值越大,几率越高的规律取出。 以前写过一些权重算法,可是都不完美,要么数据量有限制,要么weight之和必须等于一个...

PHP实现二维数组按照指定的字段进行排序算法示例

本文实例讲述了PHP实现二维数组按照指定的字段进行排序算法。分享给大家供大家参考,具体如下: 遇到问题:把两个数组用php自带的array_merge()函数合并之后,想按照两个数组中共有的post_time字段为新数组进行排序 解决办法:通过查阅官方手册,得知有array_multisort()这个函数,可以对多个数组或多维数组进行排序,返回排序之后的数组,其中字符串键名将被保留,但是数字键名将被重新索引,从 0 开始,并以 1 递增。 下面封装了...