两个GPS点的近似距离可以通过该算法轻松计算出来。 PHP的实施 function getCoordsDistance( float $lat1, float $lng1, float $lat2, float $lng2 ): float { $r = 6371; $lat1 = ($lat1 / 180) * M_PI; $lat2 = ($lat2 / 180) * M_PI; $lng1 = ($lng1 / 180) * M_PI; $lng2 = ($lng2 / 180) * M_…
大多数文件指纹散列函数的原理是,它们对每一个输入总是返回相同的输出。这被称为决定性的行为。同时,输入的微小变化将导致输出的巨大变化(有效地返回一个完全不同的哈希值)。当我们想检查输入文件是否有变化时,这一点特别有用,如果有变化,我们就会得到完全不同的东西。这种函数的一个例子是MD5或SHA1。 如果我们想从哈希值中推断出原始输入的内容,没有简单的方法,我们别无选择,只能对每个选项进行暴力破解,直到我们得到一个命中。这是因为,由于输出的巨大变化,我们无法通过迭代来确定我们是否正在接近目标。 一些散…
算法的复杂性2021-08-03T18:40:00.000Z 每种算法都有自己的复杂性,可以用数学符号表示。这个概述显示了根据输入数据的大小(即它们所处理的元素的数量)以及哪种类型的算法适合哪种类型的任务的典型复杂性。 一般来说,每种类型的问题都有一个最佳的专门算法。没有哪种算法是普遍最好的,你总是需要知道你的背景。 大O记号 大O符号*是用来根据算法的运行时间或内存需求如何随着输入规模的增加而增加来对算法进行分类。 下图显示了用大O符号指定的算法的最常见增长顺序。 下面是一些最常用的大O符号的列表,以及它们在不同输入数据大小方面的性能比较。 大O记法 1…
在PHP中没有简单的方法来验证和格式化电话号码,所以我写了一个简单的库,没有依赖性,但仍然可以处理这个角色。 其目的是检查电话号码的格式,或将其转换为基本的规范形式(总是有效的)。 安装 仅仅通过作曲家。 $ composer require baraja-core/phone-number 或者下载Download on GitHub软件包。 如何使用图书馆 这个工具的原理是基于格式化和验证来自用户的电话号码,或来自你无法控制的来源。 最常见的用途是纠正电话号码的格式。 $original =…
在过去,这篇文章介绍了识别类似数字的方法。 例如,"500 199 Kč "和 "500 210 Kč "几乎相同。 解决办法是计算比例并与epsilon进行比较。 $x = 500199; $y = 500210; $epsilon = 0.001; if (abs($x / $y) < $epsilon) { // 这些数字是相似的 }
验证码是目前保护免费格式的最常见方式之一。它最初不是为了保护数据安全,而是为了防止垃圾邮件,并承认它是一个人。 然而,它是由机器生成的,所以它并不总是完美的,但验证码测试的成功率大约为99%,只有1%的图像可以被一个制作精良的垃圾邮件机器人破译。 它是如何工作的 还有更多的选择,例如我使用这个解决方案。 服务器接收到用户请求的表单页面的信息,并开始生成。 在未来的验证码测试领域,它放了一张图片,上面有一个什么都不说的秘密地址(比如一个随机数,一串字符,……任何东西)。 图像被生成并存储在该地址。…