算法
文章平均质量分 63
算法PHP实现
@航空母舰
这个作者很懒,什么都没留下…
展开
-
十进制转其他进制算法 位运算
十进制转二进制,即把十进制数m除以2,得到商和余数,记录下余数,用商继续除以2得到商和余数,如此循环直至商为0后,把所有的余数倒叙排列即为二进制数。用商继续除以16得到商和余数,如此循环直至商为0后,把所有的余数倒叙排列即为十六进制数。用商继续除以8得到商和余数,如此循环直至商为0后,把所有的余数倒叙排列即为八进制数。十进制转十六进制,即把十进制数m除以16,得到商和余数,记录下余数,十进制转八进制,即把十进制数m除以8,得到商和余数,记录下余数,...........................原创 2022-08-15 10:37:24 · 1144 阅读 · 0 评论 -
PHP实现Dijkstra算法
Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构,图论,运筹学等等。注意该算法要求图中不存在负权边。看如下实例:(1)初始左边是一张连通带权有向图,右边是起始顶点0到各个顶点的当前最短距离的列表,起始顶点0到自身的距离是0(2)将顶点0进行标识,并作为当前顶点...原创 2020-12-01 10:24:35 · 484 阅读 · 2 评论 -
PHP贪心算法
所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,它所做出的仅仅是在某种意义上的局部最优解。贪心算法没有固定的算法框架,算法设计的关键是贪心策略的选择。必须注意的是,贪心算法不是对所有问题都能得到整体最优解,选择的贪心策略必须具备无后效性(即某个状态以后的过程不会影响以前的状态,只与当前状态有关。)所以,对所采用的贪心策略一定要仔细分析其是否满足无后效性。比如,求最小生成树的Prim算法和Kruskal算法都是漂亮的贪心算法。<?php$it原创 2020-12-01 09:49:24 · 400 阅读 · 0 评论 -
不重复的随机数算法 洗牌算法
<?php/** * 生成指定长度不重复的字符串. * * @param integer $min 最小值. * @param integer $max 最大值. * @param integer $len 生成数组长度. * * @return array */function uniqueRandom($min, $max, $len){ if ($min < 0 || $max < 0 || $len < 0) { throw n.原创 2020-11-30 18:20:56 · 174 阅读 · 0 评论 -
PHP排列组合算法
排列:从M个数字中选择N个数字,数字可以重复组合:从M个数字中选择N个数字,数字不能重复<?php// 阶乘function factorial($n){ return array_product(range(1, $n));}// 计算排列个数function A($n, $m){ return factorial($n) / factorial($n - $m);}// 计算组合个数function C($n, $m){ return A(原创 2020-11-27 11:18:38 · 1675 阅读 · 0 评论 -
PHP实现DFA算法
前言最近项目需要用到敏感词过滤功能,最开始想的是使用正则匹配和mysql存储敏感词来对敏感词来进行过滤操作,但是这两种方法都感觉不好。大家都知道正则性能问题一直都是一个很大的问题,而使用mysql的话虽然可以实现,但是给数据库增加了额外的压力。后面经过Google了解到DFA(有穷自动机)算法可以解决我的问题。什么是DFA算法?DFA全称为:Deterministic Finite Automaton,即确定有穷自动机。其特征为:有一个有限状态集合和一些从一个状态通向另一个状态的边,每条边上标.原创 2020-11-27 11:12:51 · 508 阅读 · 0 评论 -
维吉尼亚加密算法 PHP版
<?php//coder:Jiangbin//date:2011-11-25/***************************************** 凯撒密码表 ABCDEFGHIJKLMNOPQRSTUVWXYZ BCDEFGHIJKLMNOPQRSTUVWXYZA CDEFGHIJKLMNOPQRSTUVWXYZAB DEFGHIJKLMNOPQRSTUVWXYZABC EFGHIJKLMNOPQRSTUVWXYZABCD FGHIJKLMNOP.原创 2020-11-27 10:11:29 · 256 阅读 · 0 评论 -
PHP排序算法(插入,选择,交换,冒泡,快速)
for ($j = $num - 1; $j >= $i ; $j--) { // 相邻两个数比较 if ($arr[$j] < $arr[$j-1]) { // 暂存较小的数 $iTemp = $arr[$j-1]; // 把较大的放前面 $arr[$j-1] = $arr原创 2011-07-13 11:16:13 · 123 阅读 · 0 评论 -
PHP 非常规业务算法标准
n bool|string */public static function getMillisecond(){ list($msec, $sec) = explode(' ', microtime()); $msectime = (float) sprintf('%.0f', (floatval($msec) + floatval($sec)) * 1000); return $msectimes = substr($msectime, 0, 13);}原创 2019-06-26 15:47:16 · 145 阅读 · 0 评论 -
PHP开源加密解密库(带超时)
.sourceforge.net/documentation/http://phpseclib.sourceforge.net/index.html此函数的厉害之处在于可以在指定时间内加密还原字符串,超时无法还原。即便是原文和密钥完全相同,加密结果也会每次不同,增大破解难度。这样我们就可以拿此函数来做很多用途了,比如:单点登录的token加密传输啦,临时密码 ,找回密码链接 等等。在这里记录一下,方便以后应用。<?php/** * @param string $stri原创 2011-01-30 15:45:31 · 161 阅读 · 0 评论 -
客户端加密传输 后端解密
联网上大多数网站,用户的数据都是以明文形式直接提交到后端 CGI ,服务器之间的访问也大都是明文传输,这样可被一些别有用心之人通过一些手段监听到。对安全性要求较高的网站,比如银行和大型企业等都会使用 HTTPS 对通讯过程进行加密等处理。常见js加密应用登录数据,路径地址但是使用 HTTPS 的代价是及其昂贵的。不只是 CA 证书的购买,更重要的是严重的性能瓶颈,解决方法目前只能采用专门的 SSL 硬件加速设备如 F5 的 BIGIP 等。因此一些网站选择了简单模拟 SSL 的做法,使用 RSA 和 .原创 2012-07-16 10:41:06 · 419 阅读 · 1 评论 -
PHP OpenSSL实现RSA加密解密(通java)
openssl是一个功能强大的工具包,它集成了众多密码算法及实用工具。我们即可以利用它提供的命令台工具生成密钥、证书来加密解密文件,也可以在利用其提供的API接口在代码中对传输信息进行加密。加密使用 公钥, 解密使用 私钥签名使用 私钥, 验证使用 公钥rsa加密的明文最大长度117字节,解密要求密文最大长度为128字节.待加密的字节数不能超过密钥的长度值除以8再减去11,而加密后得到...原创 2012-11-21 21:22:01 · 208 阅读 · 0 评论 -
php 3DES|DES 加密解密(通用)
iami = base64_encode($des->encrypt($plaintext));echo "Encode:".$jiami."<br/>";echo "Decode:".$des->decrypt(base64_decode($jiami));?>由于PHP使用mcrypt扩展进行3DES加密,填充模式是跟JAVA以及.NET是不一样的,JAVA原创 2013-01-08 21:37:12 · 121 阅读 · 0 评论 -
中文加密 文本模式
. $name . '"}'; $arr = json_decode($json, true); if (!empty($arr)) { $result = $arr['str']; } return $result;}//字符串按照文字长度分割成数组function str_split_unicode($str, $length = 0) { if ($length > 0) {原创 2017-07-06 18:05:22 · 768 阅读 · 0 评论 -
平均分配算法
ers, list*(seqno+1)/taskCounters]11个数,平均分给4个CPUheader("Content-type: text/html; charset=utf-8");$list = 11;$taskCounters = 4;$result = [];for ($taskNumber = 0; $taskNumber < $taskCounters; $taskNumber++) { $seqno = $taskNu原创 2018-03-26 10:07:43 · 3951 阅读 · 0 评论 -
微信红包算法
微信红包算法<?php/** * 随机红包+固定红包算法[策略模式] * copyright (c) 2016 http://blog.csdn.net/CleverCode *///配置传输数据DTOclass OptionDTO{ //红包总金额 public $totalMoney; //红包数量 public $num; ...转载 2019-09-12 17:20:42 · 484 阅读 · 0 评论 -
随机算法 概率算法
ght); var div_left = GetRandomNum(0,sWidth); jQuery("#div").css("position","absolute"); jQuery("#div").css("z-index",100000); jQuery("#div").css("top",div_top); jQuery原创 2016-06-28 14:19:33 · 287 阅读 · 0 评论 -
C 编写动态链接库PHP DLL
式调用extern "C" _declspec(dllexport) int add(int i1,int i2){ return i1+i2;}(1) 静态链接声明:#pragma comment(lib, "dll1.lib")extern "C" _declspec(dllexport) int add(int i1,int i2); 然后就可以像调用普通函数一样调用了。如果dll中函数很多的话,一般都原创 2012-06-23 17:57:44 · 140 阅读 · 0 评论 -
C 对话框DialogBox
原创 2012-06-14 22:02:20 · 469 阅读 · 0 评论 -
VC 建立php扩展
原创 2012-06-23 23:04:51 · 388 阅读 · 0 评论