Questions tagged «algorithm»

算法是定义明确的问题解决方案的一系列明确定义的步骤。当您的问题与算法设计有关时,请使用此标签。

5
如何确定pi的计算是否正确?
我正在尝试各种方法来实现一个程序,该程序顺序给出pi的数字。我尝试了泰勒级数方法,但是事实证明,它收敛非常慢(当我将我的结果与在线值进行比较之后会比较)。无论如何,我正在尝试更好的算法。 因此,在编写程序时,就像所有算法一样,我陷入了一个问题:我怎么知道n我计算出的数字是准确的?

30
使用1 MB RAM对1百万个8位十进制数字进行排序
我有一台具有1 MB RAM且没有其他本地存储的计算机。我必须使用它来通过TCP连接接受一百万个8位十进制数字,对它们进行排序,然后通过另一个TCP连接将排序后的列表发送出去。 数字列表可能包含重复项,我不能丢弃。该代码将放置在ROM中,因此我不必从1 MB中减去代码的大小。我已经有了驱动以太网端口和处理TCP / IP连接的代码,它的状态数据需要2 KB,包括一个1 KB的缓冲区,代码将通过该缓冲区读写数据。有解决这个问题的方法吗? 问题和答案的来源: slashdot.org cleaton.net

30
将随机范围从1–5扩展到1–7
给定一个产生1到5范围内的随机整数的函数,编写一个产生1到7范围内的随机整数的函数。 什么是简单的解决方案? 什么是减少内存使用或在较慢的CPU上运行的有效解决方案?
692 algorithm  random  puzzle 

30
生成一个整数,该整数不在给定的40亿个整数中
我得到了这个面试问题: 给定一个具有40亿个整数的输入文件,请提供一种算法来生成文件中不包含的整数。假设您有1 GB的内存。如果只有10 MB的内存,请执行后续操作。 我的分析: 文件大小为4×10 9 ×4字节= 16 GB。 我们可以进行外部排序,从而让我们知道整数的范围。 我的问题是在已排序的大整数集中检测丢失的整数的最佳方法是什么? 我的理解(阅读所有答案之后): 假设我们正在谈论32位整数,那么有2 32 = 4 * 10 9个不同的整数。 情况1:我们有1 GB = 1 * 10 9 * 8位= 80亿位内存。 解: 如果我们用一位代表一个不同的整数,那就足够了。我们不需要排序。 实现方式: int radix = 8; byte[] bitfield = new byte[0xffffffff/radix]; void F() throws FileNotFoundException{ Scanner in = new …

30
如何创建URL缩短器?
我想创建一个URL缩短服务,您可以在其中将长URL写入输入字段,然后该服务将URL缩短为“ http://www.example.org/abcdef”。 除了“ abcdef”以外,还有其他任何包含六个字符的字符串a-z, A-Z and 0-9。这使得56〜570亿个可能的字符串。 我的方法: 我有一个包含三列的数据库表: id,整数,自动递增 long,字符串,用户输入的长URL 简短的字符串,缩短的URL(或仅六个字符) 然后,我将长网址插入表中。然后,我将为“ id” 选择自动增量值,并为其构建一个哈希值。然后,此哈希应插入为“ short”。但是我应该建立什么样的哈希?像MD5这样的哈希算法创建的字符串太长。我认为我不使用这些算法。自建算法也将起作用。 我的点子: 对于“ http://www.google.de/”,我获得了自动增量id 239472。然后,我执行以下步骤: short = ''; if divisible by 2, add "a"+the result to short if divisible by 3, add "b"+the result to short ... until I have divisors for a-z and A-Z. …
667 algorithm  url 



23
如何检查数字是否为2的幂
今天,我需要一种简单的算法来检查数字是否为2的幂。 该算法需要为: 简单 更正任何ulong值。 我想出了这个简单的算法: private bool IsPowerOfTwo(ulong number) { if (number == 0) return false; for (ulong power = 1; power > 0; power = power << 1) { // This for loop used shifting for powers of 2, meaning // that the value will become 0 after the …
584 c#  algorithm  math 

30
从n返回k个元素的所有组合的算法
我想编写一个函数,该函数采用字母数组作为参数,并选择多个字母。 假设您提供8个字母的数组,并希望从中选择3个字母。然后您将获得: 8! / ((8 - 3)! * 3!) = 56 返回由3个字母组成的数组(或单词)。

5
朴素贝叶斯分类的简单解释
我发现很难理解朴素贝叶斯的过程,而且我想知道是否有人可以用简单的英语逐步过程来解释它。我知道它会将发生的时间进行比较作为概率,但是我不知道训练数据与实际数据集之间的关系。 请给我解释一下培训集扮演的角色。我在这里举一个非常简单的水果示例,例如香蕉 training set--- round-red round-orange oblong-yellow round-red dataset---- round-red round-orange round-red round-orange oblong-yellow round-red round-orange oblong-yellow oblong-yellow round-red

18
哪些算法可以计算地图上从A点到B点的方向?
地图提供商(例如Google或Yahoo! Maps)如何建议方向? 我的意思是,他们可能具有某种形式的现实世界数据,当然包括距离,还可能包括诸如行车速度,人行道的存在,火车时刻表等。但是,假设数据采用的是更简单的格式,例如一个非常大的有向图边缘权重反映距离。我希望能够快速计算从一个任意点到另一点的方向。有时这些点会很靠近(在一个城市内),而有时它们会很远(越野)。 像Dijkstra的算法这样的图算法将无法工作,因为图非常大。幸运的是,像A *这样的启发式算法可能会起作用。但是,我们的数据非常结构化,也许某种分层方法可能有效?(例如,存储相距很远的某些“关键”点之间的预先计算的方向以及一些本地方向。然后,两个遥远点的方向将涉及到关键点的本地方向,到另一个关键点的全局方向,然后是本地再次指示。) 实际上实际使用哪些算法? PS。这个问题是由在在线制图方向上找到古怪之处引起的。与三角形不等式相反,有时Google Maps认为XZ比使用XYZ中的中间点花费的时间更长,而且更远。但是也许他们的步行方向也针对另一个参数进行了优化? PPS。这是对三角形不等式的另一种违反,对我而言,这暗示了他们使用某种分层方法:XZ与XYZ。前者似乎使用了著名的塞巴斯托波尔大道,尽管有点偏离。 编辑:这些示例似乎都不工作了,但在原始帖子发布时都可以。

30
进行浮动和双重比较的最有效方法是什么?
比较两个double或两个float值的最有效方法是什么? 简单地这样做是不正确的: bool CompareDoubles1 (double A, double B) { return A == B; } 但是类似: bool CompareDoubles2 (double A, double B) { diff = A - B; return (diff < EPSILON) && (-diff < EPSILON); } 似乎是废物处理。 有人知道更聪明的浮点比较器吗?



17
如何建立堆的时间复杂度为O(n)?
有人可以帮助解释如何建立堆的O(n)复杂性吗? 将项目插入堆中是O(log n),插入重复n / 2次(其余为叶子,并且不能违反堆属性)。因此,O(n log n)我认为这意味着复杂度应为。 换句话说,对于我们“堆砌”的每个项目,它有可能不得不针对到目前为止的堆的每个级别(即log n个级别)过滤一次。 我想念什么?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.