草庐IT

algorithm

全部标签

php - 关于将数学方程式写入代码的建议

我是一名自学成才的开发人员(大约3年了),我想通过学习如何将数学方程式写入代码来提高我的开发技能。这一直困扰着我,我看到许多书籍和文章都附有发光的数学方程式,看起来真的很有趣。我可以读懂其中的一部分(乘法、除法、小数、西格玛、变量),但在用代码实现它们时遇到了麻烦。例如,如何开始理解这些方程式:http://en.wikipedia.org/wiki/Manhattan_distance然后开始用代码编写它们?有什么地方可以推荐吗?这不是代码问题,而是缺乏基本的数学理解吗?我愿意听和读,因为我觉得这种能力对于开发人员来说非常重要。 最佳答案

php - 编写更快的组合算法

我正在尝试编写一个组合算法,以在不重复的情况下从n中获取k的所有可能组合。公式为:n!/(k!(n-k)!));结果以数组形式结束。我实际写的是这样的:functionFactorial($x){if($x=$x;$xx++){$ans=$ans*$xx;}return($ans);}functionCombination($selectcount,$availablecount){$ans=Factorial($availablecount)/(Factorial($availablecount-$selectcount)*Factorial($selectcount));retur

php - 算法复杂度——双星是什么意思

有人知道像这样的O(N**3)复杂度算法中的双星是什么意思吗?我在PHP的similar_text()中找到了那个功能,不理解。谢谢 最佳答案 **表示权力。因此,n**3表示n^3。复杂度是n^3或O(n^3)的数量级 关于php-算法复杂度——双星是什么意思,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/27458446/

php - 从多个值列表中查找所有不冲突的值组合

我有以下包含值数组的数组:$array=array(array('1','2'),array('a','b','c'),array('x','y'),);可以有任意数量的数组,一个数组可以包含任意数量的值。我目前有一段代码将生成所有组合,其中一个值从每个数组中获取。例如:1ax,1ay,1bx,1by,1cx,1cy,2ax,2ay,2bx,2by,2cx,2cy然而,我真正想要的只是每列中只有一个值的组合,即。1ax不好,因为所有三个值1、a和x都位于第一列,1by不好,因为b和y位于第二列。所以从上面的例子来看,只有这些组合是有效的:1cy,2cx我最初计划只生成所有组合,然后过滤

php - 来自子集的五个唯一随机数

我知道类似的问题经常出现,而且可能没有明确的答案,但我想从一个可能无限大的数字子集(可能是0-20,或0-1,000,000)中生成五个唯一的随机数。唯一的问题是我不想运行while循环或填充数组。我目前的方法是简单地从一个子集中生成五个随机数减去最后五个数字。如果任何数字彼此匹配,则它们会转到子集末尾各自的位置。因此,如果第四个数字与任何其他数字相匹配,它将下注设置为从最后一个数字算起的第4个。有没有人有一种“足够随机”并且不涉及代价高昂的循环或数组的方法?请记住这是一个好奇心,而不是一些关键任务问题。如果每个人都没有发布“你为什么有这个问题?”,我将不胜感激。答案。我只是在寻找想法

php - strtotime(PHP 日期函数)的算法如何工作?

我想知道strtotime(php日期函数)是如何工作的?如何将“15September2012”之类的字符串解析为时间戳有没有更好的算法?我的目的是为波斯语更改此功能 最佳答案 您可以浏览PHP的源代码(https://github.com/php/php-src)和搜索函数以查看其实现。更新这里是函数strtotime()的算法https://github.com/php/php-src/blob/master/ext/date/php_date.c#L1324问候! 关于php-s

php - 将 .csv 读入 PHP 数组

这个问题在这里已经有了答案:HowtoextractdatafromcsvfileinPHP(13个答案)关闭7年前。我有一个PHP例程,它读取已上传到我网站的.csv文件。文件中的字段数可能因上传而异。我希望能够确定.csv文件的大小(字段数),然后将其内容存储在一个数组中。这是我目前所拥有的://getthecsvfile$file=$_FILES[csv1][tmp_name];$handle=fopen($file,"r");//loopthroughthecsvfileandinsertintoarray$dataline=fgetcsv($handle,1000,",","

php - 如何计算加权平均值?

我的语言是PHP,但是算法应该比较通用。我有一个关联数组(比方说)评级和给出该评级的次数。$ratings=array(1=>1,2=>3,3=>6,4=>3,5=>3);这相当于:[1,2,2,2,3,3,3,3,3,3,4,4,4,5,5,5],但考虑到我正在处理的数字,从第一种形式转换为第二种形式的效率非常低。计算上述数字的平均值的算法是什么? 最佳答案 试试这个:$total=0;$count=0;foreach($ratingsas$number=>$frequency){$total+=$number*$frequenc

php - 在一维数组中找到 k 最长的序列?

在实现项目的上下文中,我需要在PHP中找到最长的k序列。有很多方法可以实现这一点-但哪种算法对PHP来说最快?您将实现哪种算法?(概述)哪个最有效和动态(数字、字符串等)?(快?,n-elems的时间?)您将如何实现?(例子)谢谢!PostScriptum我即将实现ONISIk-最近邻算法。最长的序列在此示意图中可视化。此shematic简要概述了ONISI算法。total/immediate-history-elements是表示$state-->$action模式的字符串。这意味着,考虑到原理图(1)的前3个元素,将显示数据,例如:$immediate_history=array(

phpass 的自定义 base 64 编码器 : does it have a name/advantage over Base64?

phpass在encode64()中使用了一个奇怪的(对我来说)算法以base64编码。Base64和Uuencode线性分块6位以在映射到可打印字符之前生成每个八位位组。encode64随机排列位:inputbitlocation:abcdefghijklmnopqrstuvwxbase64bitlocation:..abcdef..ghijkl..mnopqr..stuvwxencode64bitlocation:..cdefgh..mnopab..wxijkl..qrstuv这个算法是众所周知的吗?除了向后兼容,为什么选择它而不是Base64?下面我重写了它以阐明算法:funct