计算机科学

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


4
A中的点与B中的点之间的最短距离
给定两个集合AAA和BBB每个集合在平面中包含nnn不相交的点,请计算AAA的点和的点之间的最短距离BBB,即min { dist(p,q) | p∈A∧q∈B }min { dist(p,q) | p∈A∧q∈B }\min \space \{\mbox{ } \text{dist}(p, q) \mbox{ } | \mbox{ } p \in A \land q \in B \space \} 。 我不确定我是否正确,但是这个问题与计算几何中的线性编程可以解决的问题非常相似。但是,降低为LP并不容易。我的问题还与找到两组点之间的最薄规定有关,显然可以通过二维空间中O(n)O(n)O(n)中的LP来解决。

1
证明不能(共同)递归枚举
我想在以下问题上使用您的帮助: L={⟨M⟩∣L(M) is context-free}L={⟨M⟩∣L(M) is context-free}L=\{⟨M⟩ ∣ L(M) \mbox{ is context-free} \}。证明。L∉RE∪CoREL∉RE∪CoREL \notin RE \cup CoRE 我知道证明足以找到一种语言使得并显示从到的缩减量。L∉REL∉REL\notin REL′L′L'L′∉REL′∉REL'\notin REL′L′L'LLL (L′≤ML)(L′≤ML)(L'\leq _M L) 我开始考虑那些我已经知道它们不在,并且我知道。我想到了从减少到:。对于每:如果暂停对每个输入 否则会使,但这是不正确的,是不是?如何检查每个输入的暂停?并且-这是做到这一点的方法吗?REREREHalt∗={⟨M⟩∣M halts for every input}∉REHalt∗={⟨M⟩∣M halts for every input}∉REHalt^* =\{⟨M⟩ ∣ M\mbox{ halts for every input} \} \notin REHalt∗Halt∗Halt^*LLLf(⟨M⟩)=(M′)f(⟨M⟩)=(M′)f(⟨M⟩)=(M')⟨M⟩⟨M⟩⟨M⟩MMML(M′)=0n1nL(M′)=0n1nL(M')=0^n1^non1n0non1n0no^n1^n0^nMMM

3
如果是上下文无关的并且是规则的,那么是上下文无关的吗?
我无法解决下一个练习: 认为如果LLL是上下文无关的并且RRR是规则的,则L/R={w∣∃x∈Rs.twx∈L}L/R={w∣∃x∈Rs.twx∈L}L / R = \{ w \mid \exists x \in R \;\text{s.t}\; wx \in L\} (即右商)与上下文无关。 我知道应该存在一个接受L的PDA LLL和接受R的DFA RRR。我现在正在尝试将这些自动机结合到接受正确商数的PDA上。如果可以证明我证明了L/RL/RL/R是无上下文关系的。但是我一直在建造这款PDA。 这是我取得的成就: 在组合的PDA中,状态是单独的自动机状态的笛卡尔积。边缘是DFA的边缘,但是只有将来可以达到L原始PDA最终状态的边缘。但是不知道如何正式写下来。

1
具有预共享密钥的WPA2是否是零知识证明的示例?
设置接入点并选择WPA2时,必须在AP和STA中手动输入预共享密钥(密码)PSK。 AP和STA双方都必须相互认证。但是他们必须这样做,而不必透露PSK。双方都必须向对方证明他们知道PSK,而没有实际发送它。 那是零知识证明的例子吗? 我以为是,但是当我用Google搜索零知识证明和WPA2或EPA-PSK(使用的身份验证方法)时,没有任何合法性。

1
寻找适合新条目的排名算法
我正在使用一种排名系统,该系统将根据一段时间内的投票对条目进行排名。我正在寻找一种算法,可以计算出近似于平均分的分数,但是我希望它比起较旧的分数更喜欢较新的分数。我在考虑以下方面的问题: score1+ 2⋅score2 + ⋯+ n⋅scoren1+2+⋯+nscore1+ 2⋅score2 + ⋯+ n⋅scoren1+2+⋯+n\frac{\mathrm{score}_1 +\ 2\cdot \mathrm{score}_2\ +\ \dots +\ n\cdot \mathrm{score}_n}{1 + 2 + \dots + n} 我想知道是否还有其他通常用于这种情况的算法,如果可以,请您解释一下?

4
操作系统上下文中的中断是什么意思?
我决定阅读操作系统概念在整个夏天 Silberschatz的,Galvin Gagne(第8版)。我遇到了一个使我感到困惑的话题-中断及其在操作系统中的作用。 文字说,操作系统将开始第一个过程,例如“ init”,然后等待“事件”发生,该事件通常由中断来发出信号。文本还说,中断可以来自硬件或软件。更详细地说,这是如何工作的?操作系统是由中断驱动的吗? 我只是在寻找一些大的了解。

3
交叉编译器的T图
我正在研究Red Dragon Book Compilers的Bootstrapping,发现交叉编译器的T图非常令人困惑。我不明白“通过编译器2运行编译器1”的含义。谁能提供一些更好的解释,类比或与某些实际编译器相关的例子? 首先一些符号。由 我的意思是语言的编译器大号 书面语言小号产生输出语言/机器代码Ñ。这是一个墓碑或T型图。LSN=LSN=LSN= LLLSSSNNN 编译一个编译器 假设我们在实现语言S中为新语言L交叉编译,从而为机器N生成代码。 LSN=LSN=LSN= 假设我们还有一个在M机上运行的现有S编译器,为M机实现代码: SMM=SMM=SMM= 通过SMM运行LSN以生成LMN 编译器构造 LMN=LSN+SMMLMN=LSN+SMMLMN = LSN + SMM

1
中国邮递员问题:寻找奇数节点之间的最佳联系
我正在编写一个程序,以无方向的方式解决中国邮递员问题(也称为路线检查问题),并且目前正面临该问题,以找到最佳的附加边来连接奇数度的节点,因此我可以计算出一个欧拉回路。 可能存在(考虑要解决的图形的大小)需要计算和评估的边的巨大组合。 作为示例,存在奇数度节点。最佳组合可能是:A ,B ,C,D ,E,F,G ,HA,B,C,D,E,F,G,HA, B, C, D, E, F, G, H 一乙ABAB,,,E F G HCdCDCDËFEFEFg ^ ^ hGHGH 一çACAC,,,E H F G乙dBDBDËHEHEHFGFGFG 一dADAD,,,E G F HBCBCBCEGEGEGFHFHFH AEAEAE .... 其中表示“节点与节点之间的边缘”。A BABABABAAABBB 因此,我的问题是:是否有一种已知的算法能以比纯暴力破解更好的复杂性来解决该问题(对它们全部进行计算和评估)? €:经过一番研究,我找到了这篇有关“爱德蒙兹最小长度匹配算法”的文章,但找不到该算法的任何伪代码或学习者说明(或者至少我不认识它们,因为Google提供了许多热门歌曲,并且匹配了J. Edmonds的算法)

1
扫线矩形覆盖
不幸的是,我没有得到成功的锻炼。 有一组矩形和一个矩形。使用平面扫描算法确定R_ {1} .. R_ {n}集是否完全覆盖了R_ {0 }。 - [R 0R1..RnR1..RnR_{1}..R_{n}R0R0R_{0} R 1。。[R ñR0R0R_{0}R1..RnR1..RnR_{1}..R_{n} 有关扫掠线算法原理的更多详细信息,请参见此处。 让我们从头开始。最初,我们将扫掠线算法称为查找线段相交的算法,它需要两个数据结构: 一组事件点QQQ(它存储线段和相交点的端点) 状态TTT(扫掠线相交的一组线段的动态结构) 总体思路:假设扫掠线lll是一条垂直线,从左侧开始接近矩形组。对矩形的所有xxx坐标进行排序,并将它们按升序存储在QQQ中-应该取O(nlogn)O(nlog⁡n)O(n\log n)。从第一个事件点开始,对于每个点,确定在给定xxx坐标处相交的矩形集,确定相交矩形的连续段,并检查它们是否在当前x坐标处完全覆盖R_ {0}。以T作为二叉树,它将取O(\ log n)。如果R_ {0}的任何部分未被发现,则表示R0R0R_{0}xxxTTTO(logn)O(log⁡n)O(\log n)R0R0R_{0}R0R0R_{0}未完全涵盖。 详细信息:分段相交算法的思想是仅相邻的分段相交。基于这一事实,我们建立了状态TTT并在整个算法中对其进行了维护。我试图在这种情况下找到类似的想法,但到目前为止没有成功,我只能说两个矩形如果它们对应的xxx和yyy坐标重叠则相交。 问题是如何建立和维护TTT,什么建筑的复杂性和维护TTT的。我认为R树在这种情况下可能非常有用,但是正如我发现的那样,使用R树确定最小边界矩形非常困难。 您是否有关于如何解决此问题的想法,尤其是如何构建?TTT

1
攻击不满足单向属性的哈希函数
我正在为一门计算机安全课程进行修订,但我陷入了过去的问题之一。就这个: 爱丽丝()希望使用共享密钥向鲍勃()发送一条短消息,以验证该消息是否来自她。她建议发送一条包含两个部分的单个消息: 其中,是哈希函数,表示串联。AAAMMMBBBSabSabS_{ab}A→B:M,h(M∥Sab)A→B:M,h(M∥Sab) A \to B: \quad M, h(M \mathbin\parallel S_{ab})hhh∥∥\parallel 仔细说明鲍勃为检查消息是否来自爱丽丝所做的工作,以及为什么(除了属性之外)他可能会相信这一点。hhh 假设不满足单向性质,并且有可能生成原像。说明攻击者可以做什么以及如何做。hhh 如果生成原图像比较耗时,则建议一种简单的对策,以在不更改情况下改进协议。hhh 我想我知道第一个。Bob需要对接收到的消息及其共享密钥进行哈希处理,并将该哈希与从Alice接收到的哈希进行比较,如果它们匹配,则应证明Alice发送了该哈希。 我不确定后两个问题。对于第二个问题,答案是攻击者可以简单地获取给定哈希值的原始消息吗?我不知道该怎么做。

4
左右联想乘积相同的词
我已经开始使用Hopcroft和Ullman的书研究非确定性自动机。我陷入了一个非常有趣的问题: 给出一个不确定的有限自动机,该自动机接受根据下表乘以从左到右从右到左从左到右求值的所有具有相同值的字符串: ×abcaacbbaacccba×abcaaacbcabcbca\qquad \displaystyle\begin{array}{c|ccc} \times & a & b & c \\ \hline a & a & a & c \\ b & c & a & b \\ c & b & c &a \end{array} 因此,如果我们有字符串, 则从左至右的乘积为(a × b )× c = a × c = c, 而从右至左的乘积为a × …

1
计算集合函数的下界
假设有一个由元素组成的集合,假设我要计算一个对输入的所有部分都敏感的函数,即依赖于成员(即可以将任何成员更改为某种东西)否则要获得新的输入,和上 st值是不同的)。n f (A )A A一个AAñnnF(一)f(A)f(A)一个AA一个AA ˚F 甲甲'一个′A′A'Fff一个AA一个′A′A' 例如,可以是总和或平均值。Fff 是否有结果证明,在某些情况下,确定性图灵机计算所需的时间将为?FffΩ (n )Ω(n)\Omega(n)

1
将任意排列表示为一系列(插入,移动,删除)操作
假设我有两个字符串。打电话给他们和乙。两个字符串都没有重复的字符。一个一个A乙乙B 如何找到将变成B的最短插入,移动和删除操作序列,其中:一个一个A乙乙B insert(char, offset)char在给定offset的字符串中插入 move(from_offset, to_offset)将当前偏移的字符移动from_offset到新位置,使其具有偏移to_offset delete(offset) 删除处的字符 offset 示例应用程序:您执行数据库查询,并在您的网站上显示结果。以后,您重新运行数据库查询,发现结果已更改。您想要使用最少的DOM操作数来更改页面上的内容以匹配数据库中当前的内容。为什么要最短的操作顺序有两个原因。首先,效率。当只有几条记录更改时,您要确保执行而不是O(n )O(1)Ø(1个)\mathcal{O}(1)O (n )Ø(ñ)\mathcal{O}(n)DOM操作,因为它们很昂贵。第二,正确性。如果一项从一个位置移动到另一个位置,则您希望通过单个操作移动关联的DOM节点,而又不破坏和重新创建它们。否则,您将失去焦点状态,<input>元素的内容等。

2
分支定界说明
我对分支和绑定算法进行了测试。我从理论上理解了该算法的工作原理,但是找不到能说明该算法如何实际实施的示例。 我发现了一些例子,如这一个 ,但我仍然感到困惑了。我也寻找旅行商的问题,我听不懂。 我需要的是一些问题,以及如何通过使用分支定界法来解决这些问题。

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.