计算机科学

为学生,研究人员和计算机科学从业者提供的问答

6
在一个间隔中找到两个数字的最大异或:我们能做得比二次更好吗?
lllrrrmax(i⊕j)max(i⊕j)\max{(i\oplus j)}l≤i,j≤rl≤i,j≤rl\le i,\,j\le r 天真的算法只检查所有可能的对。例如在红宝石中,我们有: def max_xor(l, r) max = 0 (l..r).each do |i| (i..r).each do |j| if (i ^ j > max) max = i ^ j end end end max end 我感觉到,我们可以做得比二次。是否有针对此问题的更好算法?

3
“非病理数据”是什么意思?
我在Coursera上了算法课。视频中有关哈希表的教授说 事实是,对于非病理数据,您将在正确实现的哈希表中获得恒定时间的操作。 “非病理数据”是什么意思?你能举一些例子吗?

2
在地球连续地图上进行寻路的最新算法是什么?
假设我在挪威峡湾的某处有一个太阳能自动水面舰艇,提供有一组较新的地图,一个GPS接收器,并且没有从我这里下行传送详细命令的方法。例如,这艘船必须尽早到达海南岛。 在地球上寻找海上路线的确定性算法是什么? 它们的时间和内存复杂度是多少? 例如,在将地球的地图转换为具有连接的多边形(即球体/椭球上的Delaunay三角剖分)的图之后,我可以使用A *吗?还有其他可行的方法吗? 理想情况下,答案应为讨论上述问题的论文提供参考。 正如罗布·朗(Rob Lang)所指出的那样,算法必须符合通常的标准:在没有时间限制的情况下,导致地球上海洋两点之间的最短路径,否则表明寻路失败。 这里有一些有趣的子主题(用于在线计算的计算前时间/存储,在最后期限到来之前提供稍微次优的路由等),但这是主要问题的辅助内容。

1
为什么Hindley-Milner算法永远不会产生类似t1-> t2的类型?
我在编写实现时正在阅读有关Hindley-Milner输入算法的信息,并且看到,只要绑定了每个变量,您总会得到原子类型或参数将确定最终类型的类型,例如t1 -> t1或。(t1 -> t2) -> (t1 -> t2)其中t1和t2是类型变量。 我想不出一种方法,您将获得类似于t1 -> t2或简单的东西t1,据我所知,这意味着算法已被破坏,因为无法确定表达式的实际类型。您怎么知道只要绑定了每个变量,您就永远不会得到像“破”这样的类型? 我知道算法会产生带有变量的类型,但是一旦将参数传递给函数,这些变量就总是可以解决的,而带type的函数不会出现这种情况t1 -> t2。这就是为什么我想知道我们如何确定算法永远不会产生此类类型的原因。 (看来您可以在ML中获得这些“残缺的”类型,但我要询问的是lambda演算。)

1
不同常规语言的数量
给定一个字母Σ={a,b}Σ={a,b}\Sigma = \{ a,b \},nnn状态非确定性有限自动机可以接受多少种常规语言? 例如,让我们考虑n=3n=3n=3。然后,我们有2182182^{18}种不同的过渡配置以及23232^3种不同的开始和结束状态配置,因此我们有2242242^{24}种不同语言的上限。 但是,其中许多功能都是等效的,并且由于测试是PSPACE-Complete,因此测试每个设置可能不可行。 是否存在其他方法或组合参数来限制给定资源接受的不同语言的数量?

4
排序算法是否需要传递性
是否可以将排序算法与非传递性比较一起使用?如果是,为什么将传递性列为排序比较器的要求? 背景: 排序算法通常根据比较器函数C(x,y)对列表的元素进行排序,其中 C(x,y)=⎧⎩⎨−10+1if x≺yif x∼yif x≻yC(x,y)={−1if x≺y0if x∼y+1if x≻y\begin{array}{ll} C(x,y) = \begin{cases} -1 & {\text{if}}\ x\prec y \\ 0 & {\text{if}}\ x\sim y \\ +1 & {\text{if}}\ x\succ y \\ \end{cases} \end{array} 据我了解,此比较器的要求是: 自反: ∀x:C(x,x)=0∀x:C(x,x)=0\forall x: C(x,x)=0 反对称: ∀x,y:C(x,y)=−C(y,x)∀x,y:C(x,y)=−C(y,x)\forall x,y: C(x,y) = - C(y,x) 传递性: ∀x,y,z,a:C(x,y)=a∧C(y,z)=a⇒C(x,z)=a∀x,y,z,a:C(x,y)=a∧C(y,z)=a⇒C(x,z)=a\forall x,y,z, a: C(x,y)=a …

3
小猫领养问题的复杂性
这是在我尝试回答有关最小化接线长度的问题时提出的 。我本来将其称为“一夫多妻制婚姻”问题,但互联网却是如此。好极了! 假设我们有需要由采用小猫ñ人,中号> ñ。对于每只小猫,我和每个人j都有一个成本c i j。我们希望将收养所有小猫的总成本降到最低。还有一组约束条件:每个人j的收养能力不超过uMMMNNNM>NM>NM > Niiijjjcijcijc_{ij}jjj小猫。ujuju_j 没有约束,问题就很容易解决。每个小猫去与人Ĵ为其Ç 我Ĵ是最小的。有了这些约束,是否有一个针对该问题的有效算法?iiijjjcijcijc_{ij}

4
计算两个大集合之间的集合差
我有两个大的整数集的AAA和BBB。每组有大约一百万个条目,每个条目是一个正整数,最长为10位数字。 计算A∖BA∖BA\setminus B和的最佳算法是什么B∖AB∖AB\setminus A?换句话说,如何有效地计算不在B中的条目列表,反之亦然?代表这两组数据,使这些操作高效的最佳数据结构是什么?AAABBB 我能想到的最好方法是将这两个集合存储为排序列表,并以线性方式将AAA每个元素与每个元素进行比较BBB。我们可以做得更好吗?

1
实践中的通用哈希
如果 ,则哈希函数族是通用的 您可以在此Wikipedia 文章中找到有关通用哈希的更多信息。HHH^ h :ü→ { 0 ,… ,M− 1 }H:ü→{0,…,中号-1个}h: U \rightarrow \{0,\ldots,M-1\}∀ X , ÿ∈ ü,x ≠ y⇒ 镨ħ ∈ ħ[ h (x )= h ( y)] ≤ 1中号∀X,ÿ∈ü,X≠ÿ⇒镨H∈H[H(X)=H(ÿ)]≤1个中号\forall x,y \in U, x \neq y \Rightarrow \Pr_{h \in H}[h(x) = h(y)] \leq \frac{1}{M} 现在,通用哈希的概念已成为本科生数据结构课程的标准部分。能够激励学生认识通用哈希在工业应用中的重要性。所以我的问题是: 哈希函数通用族的构造在实践中重要吗?如果答案是肯定的,请您分享一些您所看到的有趣的工业应用程序吗?

2
有效地均匀且独立地随机采样最短的
令GGG为图,令sss和ttt为G的两个顶点GG。我们是否可以从s和t之间所有最短路径的集合中随机且均匀地有效采样最短sss - ttt路径?为简单起见,我们可以假设G是简单的,无向的和未加权的。ssttGG 即使在许多受限制的图中,sss和t之间最短路径的数量tt也可以是G的大小的指数GG。因此,我们自然希望避免实际计算所有最短的sss - ttt路径。我不了解一般情况,但是在我看来,我们可以通过一些特殊的图类来实现这一点。 感觉就像有人必须考虑过的事情。是否对此进行了任何研究,或者即使对于一般图形,实际上也很容易做到吗?


2
嵌入欧氏平面(2D)的图形的最短非相交路径
您将使用哪种算法来找到图的最短路径,该最短路径被嵌入到欧几里德平面中,因此该路径不应包含任何自相交(在嵌入中)? 例如,在下面的图表中,你想从去。通常,像Dijkstra算法那样的算法会产生如下序列:(0 ,0 )→ (- 3 ,2 )(0,0)→(-3,2)(0,0) \rightarrow (-3,2) [(0 ,0 )→3(0 ,3 )→2√(1 ,2 )→4(- 3 ,2 )] = 7 + 2–√。[(0,0)→3(0,3)→2(1个,2)→4(-3,2)]=7+2。\left[ (0,0) \stackrel {3}{\rightarrow} (0,3) \stackrel{\sqrt{2}}{\rightarrow} (1,2) \stackrel{4}{\rightarrow} (-3,2) \right] = 7+\sqrt{2}. 完整图: 最短的路径: 最短的非相交路径: 但是,此路径在欧几里得平面上相交,因此我需要一种算法,该算法可以为我提供最短的非相交序列,在这种情况下: [(0 ,0 )→3(0 ,3 )→3(0 ,6 )→5(- 3 ,2 )] = …


4
下推自动机“猜测”-这是什么意思?
我意识到非确定性下推自动机可以比确定性下推自动机更好,因为它们可以在多个状态之间“选择”,并且有一些上下文无关的语言无法被确定性下推所接受。 不过,我不知道他们到底是如何 “选择”的。例如,对于palindormes,我发现的每个来源都只是说自动机“猜测”了单词的中间部分。这意味着什么? 我可以想到几种可能的含义: 它随机进入一种状态,因此可能不接受实际上是该语言中的单词 它以某种“一切可能的方式”进行,因此,如果第一个错误,它将测试另一个是否正确 我不知道某种机制,它选择单词的中间,因此不是随机的,但是自动机总是找到正确的中间。 这只是一个例子。我想知道的是,对于具有一个以下多个状态且位于同一状态之前的自动机,它是如何工作的。

1
是否可以确定任何不平凡的运行时范围?
问题 给定图灵机相对于输入长度n已知运行时间O(g (n )),的运行时间是否是?中号中号MÔ(克(n ))Ø(G(ñ)){O}(g(n))ññn中号∈ Ô(˚F(n ))中号∈Ø(F(ñ))M \in {O}(f(n)) 对于和一些非平凡的对,可以确定上述问题吗?如果则解决方案是微不足道的。˚F 克(Ñ )∈ Ô (˚F (Ñ ))GGgFFfG(Ñ )∈ Ô (˚F(n ))G(ñ)∈Ø(F(ñ))g(n) \in O(f(n)) 这与以下问题有关:P中的运行时边界是否可确定?(答案:否)。可以从Viola的答案得出,如果和那么问题是确定的。˚F (Ñ )∉ Ô (克(Ñ ))F(Ñ )∉ Ô (Ñ )F(ñ)∉Ø(ñ)f(n)\not \in o(n)F(Ñ )∉ Ô (克(n ))F(ñ)∉Ø(G(ñ))f(n)\not \in O(g(n)) 的要求,即是由于中提琴的证明需要时间找到它的输入大小。因此,当f (n )= 1时,Viola的证明不起作用。中号' ø (Ñ )F(Ñ )∉ Ô (Ñ …

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.