计算机科学

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


3
什么数据结构可以有效地存储整数范围?
我需要保留一个范围在0到65535之间的整数的集合,以便可以快速执行以下操作: 插入一个新的整数 插入一系列连续的整数 删除整数 删除整数以下的所有整数 测试是否存在整数 我的数据具有以下特性:它通常在集合中包含整数整数。例如,集合在某个时间点可能是: { 121, 122, 123, 124, 3201, 3202, 5897, 8912, 8913, 8914, 18823, 18824, 40891 } 最简单的方法就是使用像C ++ std :: set这样的平衡二叉树,但是,使用它,我没有利用我经常会有大量数字的事实。也许最好存储一系列范围?但这意味着,如果要删除范围中间的整数,则需要将其分解;如果要填充两个范围之间的空格,则必须将其合并在一起。 是否存在任何适合此问题的现有数据结构?

3
测试n个项目时,如何用尽可能少的s-子集覆盖所有t-子集?
此问题源于软件测试。这个问题有点难以解释。我将首先给出一个示例,然后尝试概括该问题。 共有10个要测试的项目,例如A到J,以及一个可以同时测试3个项目的测试工具。测试工具中项目的顺序无关紧要。当然,要进行详尽的测试,我们需要10 C 3的项目组合。10C310C3^{10}C_{3} 问题比较复杂。还有一个附加条件是,一旦一对项目一起测试过,就不需要再对同一对进行测试。 例如,一旦我们执行以下三个测试: 美国广播公司 ADE BDF 我们不必执行: ABD 因为第一个测试用例覆盖了A,B对,第二个覆盖了A,D,第三个覆盖了B,D。 因此,问题在于,我们需要确保所有对都经过测试的最小测试用例数量是多少? 概括地说,如果我们有n个项目,则可以同时测试s,并且我们需要确保测试所有可能的t元组(使得s> t),我们需要的最小测试用例数是多少? n,s和t的项? 最后,什么是生成所需测试用例的良好算法?


3
号码分配
给定ķkk数字一个1个≤ 一2≤ 。。。≤ 一ķA1≤A2≤...≤AkA_1 \leq A_2 \leq ... \leq A_k,使得∑我= 1ķ一个一世= ķ (2 ķ + 1 )∑i=1kAi=k(2k+1)\sum\limits_{i=1}^k A_i = k(2k + 1)就是数字一世1个,我2,。。。,我2 千i1,i2,...,i2ki_1, i_2, ... , i_{2k},它是1、2,...,2k的排列,1 ,2 ,。。。,2 千1,2,...,2k1, 2, ... , 2k使得 i1+i2≤A1i3+i4≤A2...i2k−1+i2k≤Aki1+i2≤A1i3+i4≤A2...i2k−1+i2k≤Aki_1 + i_2 \leq A_1\\ i_3 + i_4 \leq A_2\\ .\\.\\.\\ i_{2k-1} + i_{2k} \leq A_k …

1
并发和/或分布式编程中的形式主义?
我的背景来自命令式语言,主要是C,C ++和Python。几年后,我学习了Scala,Erlang和一些Haskell,从那以后,我对函数式编程及其背后的形式形式变得非常感兴趣。 我对并发和分布式编程也很感兴趣,并且一直在研究其背后的形式主义,特别是那些至少看到了一点点“日光”的形式主义(例如,在现实世界中的使用,或者至少是某个地方的实现)。到目前为止,我知道通信顺序过程,Actor模型,通信过程的代数以及通信系统的微积分。在我当中,我知道Actor模型已经以Erlang,Scala和Haskell等语言实现了。 我想知道在解决这些领域之前是否应该学习和实践一些基础,是否应该首先学习“经典”基础,以及是否可能错过其他流行的基础?

1
令人烦恼的问题
Pebbling是在无向图上玩的纸牌游戏,其中每个顶点都有零个或多个小卵石。一个简单的磨合动作包括从顶点移除两个小卵石并将一个小卵石添加到的任意邻居。(显然,顶点v在移动之前必须至少有两个卵石。)PebbleDestruction问题询问,给定图形和每个顶点的卵石计数,是否存在序列除去除了一个小卵石以外的所有卵石运动。证明PebbleDestruction是NP完整的。GGGvvvvvvG=(V;E)G=(V;E)G = ( V; E )p(v)p(v)p ( v )vvv 首先,我证明它在NP中,因为我可以在多项式时间内验证解,从一个卵石中追溯卵石计数。 接下来,关于将哪些问题用作多项式时间约简的基础,有哪些想法? 顶点覆盖之类的东西会起作用吗?还是不同大小的顶点覆盖? 如果是这样,它如何处理每次移动中变化数量的卵石? 谢谢。 来自:http : //courses.engr.illinois.edu/cs473/sp2011/hw/disc/disc_14.pdf

2
是什么让lambda演算与研究相关?
我将于明年秋天开始一个本科计算机科学课程,但是我不能真正理解函数式编程中的λ微积分。我可能会完全误解这一点,但是根据斯坦福哲学百科全书中的定义,它只是功能的另一种表示法。 如果仅仅是这样,为什么在常规函数符号上使用λ微积分来计算算法运行时间有什么好处?

2
一个人如何有效地产生所有相等数量的0和1的二进制序列?
甲二进制序列长度的只是一个有序序列使得每个要么是或。为了生成所有这样的二进制序列,可以按以下方式使用明显的二进制树结构:根为“空”,但是每个左子级对应于现有字符串的附加值,每个右子级对应于。现在,每个二进制序列只是一条长度为的路径,该路径从根开始并在叶处终止。x 1,… ,x n x j 0 1 0 1 n + 1ññnX1个,… ,xñX1个,…,Xñx_1,\ldots,x_nXĴXĴx_j0001个1个10001个1个1n + 1ñ+1个n+1 这是我的问题: 如果我们只想生成所有长度二进制字符串,它们恰好具有零和,我们可以做得更好吗?n n2 n2ñ2nññnññn 所谓“我们可以做得更好”,是指我们应该比笨拙的算法具有更低的复杂度,后者首先在上面构建整个树,然后尝试找到具有相等数量“左”和“右”边的路径。

1
给定一个弦图
如果图没有诱导出长度为4或更大的循环,则它是弦的。甲集团树Ť的ģ是一个树,其中该树的顶点的最大小集团ģ。T中的边对应于最小分隔符。在弦图中,不同的集团树的数量可以是顶点数量的指数。GGG444ŤŤTGGGGGGŤŤT 的降低派系图表 是所有集团树的并集ģ。也就是说,它具有所有相同的顶点和所有可能的边。给定G的计算C r(G )的复杂度是多少?C[R(G )C[R(G)C_r(G)GGGC[R(G )C[R(G)C_r(G)GGG 我想我曾经看过一个演示文稿,声称可以在O (m + n )时间内计算而无需证明。这意味着它与计算G的集团树一样容易。是否有参考文献可以证实这一点,或者给出了较慢的算法来计算?C[R(G )C[R(G)C_r(G)O (m + n )Ø(米+ñ)O(m+n)GGG

1
矩阵熵的约束优化问题
我在(Shannon)矩阵熵一个约束优化问题。矩阵可以写成形式为的秩1矩阵之和其中是给定的归一化向量。排名第一的矩阵的系数是我们进行优化的未知数,它们必须大于零且总和为1。 A [ v i(小号û 米(e n t r (e i g (A ))))(sum(entr(eig(A))))\mathtt{(sum(entr(eig(A))))}一个AAv 我[ v一世vŤ一世][viviT][v_i\,v_i^T]v一世viv_i 用类似CVX的语法,问题如下:给定变量C(n )c(n)\mathtt{c(n)} 最小化小号ü 米(e n t r (e i g (A )))minimizesum(entr(eig(A)))\text{minimize} \qquad \mathtt{sum(entr(eig(A)))} 服从一个Σ ç一世C一世= ∑ c一世v一世vŤ一世= 1≥ 0subject toA=∑civiviT∑ci=1ci≥0\begin{align} \text{subject to} \qquad A &= \sum c_i v_i v_i^T\\ \sum c_i &= 1\\ …

3
二维蛋糕的公平划分
我对公平分配土地的程序(即无嫉妒的划分,或至少按比例划分的划分)感兴趣。 与深入研究的蛋糕分割问题相反,土地分割是二维的,即用户的喜好在水平和垂直方向上都可以变化。因此,将算法限制为并行割是不切实际的。 到目前为止,我发现的唯一参考文献是Karthik Iyer和Michael Huhns,2007年。他们说:“到目前为止,对于通用土地分割问题,我们还没有遇到任何建设性(算法)解决方案。所有论文都为该问题的合格版本提供了存在性解决方案。” 他们自己证明了用于比例土地分割的O(n ^ 2)算法,但有一定的局限性(例如,n个代理中的每个代理都必须用效用1 / n标记n个矩形区域,并且如果矩形的重叠不太多,该算法保证每个代理都能获得其矩形之一)。 您是否知道有关此问题的任何新参考?我对实用算法特别感兴趣,它们可能是近似的。

3
程序分析入门
我正在寻找有关程序分析入门的资源。 我找到的关于该主题的唯一一本书是尼尔森与尼尔森的书。 除此之外,似乎只有“编译器”书中的“程序分析”将作为一章或类似内容。 人们是否还知道其他资源?

2
哪个分类器对SVM分类更准确?
我正在学习SVM分类并遇到问题。我不确定这个难题是否有专门的术语。 假定我们要根据SVM对患者(既有健康人,也有性别)和肝癌(有性别)的样本进行分类。如果我们将健康人样本标记为1类,将癌症人标记为2类,则可以训练二进制SVM并获得分类器1来预测任何新患者。现在,想象另一个场景。假设我们先将所有样本按性别划分,然后再进行SVM分类。对于每种性别,我们仍将健康患者与癌性患者分为2类,并训练二元SVM分别获得女性和男性样本的分类器2和分类器3。问题是是否有新的女性患者,应该使用哪个分类器1或2来获得更准确的预测?这是我争论的两难境地 (1)当样本数量很大时,预测应该更准确。基于此论点,分类器1似乎是一个不错的选择。 (2)但是,如果我们首先将样本分为女性和男性,分类器2似乎是更好的选择,因为新患者(未知检测样本)是女性。 这种困境是否有术语,或者有人知道任何进一步的信息,或者如何解决这样的问题?我什至不确定这是否是一个合法的问题,并且对预先提出的幼稚问题表示抱歉。谢谢

1
如何理解SR锁存器
我无法确定SR闩锁的工作原理。看来,您从R插入一条输入线,从S插入另一条输入线,应该在和得到结果。Q '问QQQ′Q′Q' 但是,R和S都需要对方的输出作为输入,对方的输出也需要对方的输出作为输入。鸡肉或鸡蛋是第一位的? 首次插入该电路时,如何开始使用?

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.