草庐IT

算法复杂度

全部标签

php - 在 Amazon Dynamo DB 中编写复杂查询(数学表达式)

我已经从mysql切换到DynamoDB。在mysql中,我使用查询来获取更接近特定纬度和经度的所有用户。查询是SELECT*,SQRT(POW(69.1*(latitude-$latitude),2)+POW(69.1*($longitude-longitude)*COS(latitude/57.3),2))ASdistanceFROMcouponWHEREis_active='Y'HAVINGdistance是否可以像在DynamoDB中那样创建查询。我使用PHP作为我的后端 最佳答案 不,AmazonDynamoDB不提供像这

php - 使用组迭代(循环)复杂的数字范围以生成括号表

我正在尝试构建一种算法来处理比赛的括号表。我需要检查一系列数字。对于每个数字,都会有运动员的名字。号码随机分配给运动员,但号码的配对必须始终保持不变。有两组奇数和偶数,即A和B。唯一的问题是我找不到合适的算法来以准确的方式迭代数字,如下所示:GroupA:--------117925------5211329------3191127------7231531GroupB:--------2181026------6221430------4201228------8241632有人可以提供有关如何获得上述输出的建议或示例吗?编辑1:上面的例子是32运动员的括号表!如果您为4、8、16

php - 如何制作正则表达式来测试用户名复杂性要求?

我正在学习正则表达式并有一个问题;答案将帮助我更好地理解正则表达式。输入的是用户名。此用户名应至少包含4个小写字符(a-z)、1个大写字符(A-Z)和2个数字。它总共也应该最多有10个字符。如何制作正则表达式来测试这些要求? 最佳答案 为每个条件使用具有先行/后行的正则表达式。如下所示:^(?=(.*[a-z]){4})(?=.*[A-Z])(?=(.*\d){2}).{7,10}$我认为正则表达式是不言自明的,如果你想让我解释每一部分,请告诉我。好的,按照OP的要求解释:(?=ABC),(?!ABC)和(?,(?-是前瞻和后视,它

php - 如果 PHP 的 mt_rand() 使用比 rand() 更快的算法,为什么不直接更改 rand() 以使用更新的实现呢?

随机数函数的目的是获得(您猜对了)一个随机数,这是您无法预测(或者很难准确预测)的东西。如果mt_rand()函数比旧的rand()更快且更不可预测(更“随机”),为什么不将底层实现切换到新方法呢?换句话说,如果/因为底层实现发生变化,哪种使用rand()的程序会在更高版本的PHP中中断? 最佳答案 主要是因为那是PHP方式。就像他们添加了mysql_real_escape_string而不是用它替换mysql_escape_string一样。然而,这也可能与mersenne-twister算法的缺点有关(我不知道它们是否也存在于r

php - 复杂的字符串比较

我正在尝试用PHP编写一个函数,它接受一个字符串数组(needle)并与另一个字符串数组(haystack)进行比较。此函数的目的是为AJAX搜索快速提供匹配的字符串,因此它需要尽可能快。下面是一些示例代码来说明这两个数组;$needle=array('ba','hot','resta');$haystack=array('SouthernHotel','GrangeRestaurant&Hotel','AustralHotel','BarsmithHotel','Errestas');虽然这本身很容易,但比较的目的是计算haystack中出现了多少needle字符串。但是,有3个限制

php - IP地址的快速文件搜索算法

问题查找IP地址是否存在于包含排序为IP地址的文件中的最快方法是什么:219.93.88.62219.94.181.87219.94.193.96220.1.72.201220.110.162.50220.126.52.187220.126.52.247约束没有数据库(例如MySQL、PostgreSQL、Oracle等)允许不频繁的预处理(参见可能性部分)最好不要每次查询都加载文件(131Kb)使用不到5兆字节的磁盘空间没有额外的PHP模块文件详细信息每行一个IP地址9500多行可能的解决方案创建目录层次结构(radixtree?)然后使用is_dir()(遗憾的是,这使用了87兆字

php - 嵌套评论背后的算法是什么?

我想学习Reddit背后的评论显示算法。评论如何与其child等相关?它们如何存储在数据库中?让我们说comment1-comment2--comment3-comment4--comment5--comment6---comment7----comment8comment9如何显示在comment1之后的comment4之后的comment5?这种排序背后的想法是什么?以及如何在数据库中关联它们? 最佳答案 它被称为层次结构。每条评论要么没有父评论,要么只有一个父评论。通过这种方式,您可以显示每个“顶级”评论(由于它们没有父评论)

php - PHP 中的 Pantelides 算法

我正在研究pantelides算法,我需要一些关于正则表达式的帮助pantelides算法位于intheindex.phpofthemainpackage@http://jpye.dyndns.org/pantelides/在index.php文件中我看到:if(preg_match_all("#\\b([a-z][a-z_0-9]*)(?!\\()\\b#i",$str,$matches)){现在,我不是regexp的专家,但我知道[a-z]是什么意思,但那是\\b的意思? 最佳答案 Wordboundaries在双引号php字符

5)自适应滤波(二)[RLS算法]

目录一.递推最小二乘法(RLS)算法1.1以N阶线性系统起点,1.2动机:1.3目标函数的定义:1.3.1基于指数加权定义目标函数:1.3.2后验与先验误差对比:1.3.2最小化目标函数J(w):1.4求解滤波器系数1.4.1推导自相关矩阵和相关向量的时间递推公式:1.4.2自相关矩阵时间递推公式的优化:1.4.3 滤波器系数w(n)的时间递推公式:1.5RLS算法的执行流程:1.6RLSvsLMSTableofContents    -一.递推最小二乘法(RLS)算法        -1.1以N阶线性系统起点,        -1.2动机:        -1.3目标函数的定义:      

php - 合并/合并日期范围的算法

我正在尝试找到将日期范围合并到一个数据库记录(数组元素)中的最佳方法。这是我的数据:Array([0]=>Array([id]=>18298[start_date]=>2011-07-09[end_date]=>2011-10-01)[1]=>Array([id]=>18297[start_date]=>2011-06-01[end_date]=>2011-06-30)[2]=>Array([id]=>17113[start_date]=>2011-03-31[end_date]=>2011-05-31)[3]=>Array([id]=>20555[start_date]=>2011-