计算机科学

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

3
我什么时候应该学习人工智能?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 去年关闭。 直截了当:我真的很想学习AI。 但是我想从经验丰富的CS专家那里获得一些建议,以了解何时应该加入人工智能。 为了使我更好地掌握AI概念,需要哪些先决条件?

3
如何显示两个计算模型是等效的?
我正在寻求有关如何证明两种计算模型等效的解释。我一直在阅读有关该主题的书籍,只是省略了等效证明。我对两个计算模型等效是什么有一个基本的想法(自动机视图:如果它们接受相同的语言)。还有其他考虑等效性的方法吗?如果您可以帮助我了解如何证明图灵机模型等效于lambda微积分,那就足够了。

3
拒绝采样是获得真正均匀的随机数分布的唯一方法吗?
假设我们有一个随机发生器,在输出范围数[0..R−1][0..R−1][0..R-1]与均匀分布,我们需要的范围内生成随机数[0..N−1][0..N−1][0..N-1] 与均匀分布。 假设N&lt;RN&lt;RN < R并且NNN不能均匀地除以RRR ; 为了获得真正均匀的分布,我们可以使用 拒绝采样方法: 如果kkk是最大整数,则kN&lt;RkN&lt;Rk N < R 在[ 0 .. R − 1 ]中选择一个随机数rrr[0..R−1][0..R−1][0..R-1] 如果r&lt;kNr&lt;kNr < k N则输出,否则继续尝试其他随机数r',r“,...直到满足条件rmodNrmodNr \mod N 拒绝采样是获得真正均匀的离散分布的唯一方法吗? 如果答案是肯定的,为什么? 注意:如果N&gt;RN&gt;RN > R则想法是相同的:在[0..R ^ m-1]中生成随机数r' ,R ^ m&gt; = N,例如r'= R(... R(R r_1 + r_2)...)+ r_m,其中r_i是[0..R-1]范围内的随机数r′r′r'[0..Rm−1],Rm&gt;=N[0..Rm−1],Rm&gt;=N[0..R^m-1], R^m >= Nr′=R(...R(Rr1+r2)...)+rmr′=R(...R(Rr1+r2)...)+rmr' = R(...R(R r_1 + …

2
加权图的最小生成树在给定的权重下具有相同数量的边吗?
如果加权图具有两个不同的最小生成树和,那么这是真的,对于任何边缘在,在边缘的数量用相同的重量(包括本身)与的边数相同,权重与?相同。如果这个说法是正确的,那我们怎么证明呢?T 1 = (V 1,E 1)T 2 = (V 2,E 2)e E 1 E 1 e e E 2 eGGGŤ1个= (V1个,E1个)T1=(V1,E1)T_1 = (V_1, E_1)Ť2= (V2,E2)T2=(V2,E2)T_2 = (V_2, E_2)ËeeË1个E1E_1Ë1个E1E_1ËeeËeeË2E2E_2Ëee

4
预订Cormen以外的算法
我已经完成了Cormen的《算法入门》一书中的大部分内容,并且正在寻找一本涵盖Corman本书以外的内容的算法书。有什么建议吗? 注意:我在stackoverflow上询问了此问题,但对答案并不满意。 注意:在我看来,通过阅读大多数评论,我很理想地希望在本课程说明中找到一本涵盖787课程材料的书。

7
年轻人的计算机科学书
此问题是从理论计算机科学堆栈交换迁移而来的,因为可以在计算机科学堆栈交换上回答。 迁移 7年前。 对于15岁的年轻人来说,什么是一本好的初学者计算机科学书籍?我想开始使用CS,但是不知道从哪里开始。我在编程方面的经验有限。

2
什么是Beta对等?
此问题是从理论计算机科学堆栈交换迁移而来的,因为可以在计算机科学堆栈交换上回答。 迁移 7年前。 在我目前正在阅读的lambda演算的脚本中,β等价定义为: 该 -equivalence是一个包含最小的等价。&equiv; β →交通βββ\beta≡β≡β\equiv_\beta→β→β\rightarrow_\beta 我不知道那是什么意思。有人可以用更简单的方式解释它吗?也许举个例子? 我需要它来作为遵循Church-Russer定理的引理, 如果M N,则存在具有M A L L和N L.↠ β≡β≡β\equiv_\beta↠β↠β\twoheadrightarrow_\beta↠β↠β\twoheadrightarrow_\beta

3
主要过程代数的异同
据我所知,有三个主要的过程代数启发了对并发形式模型的大量研究。这些是: CCS和演算都由Robin Milner撰写ππ\pi 托尼·霍尔(Tony Hoare)和 Jan Bergstra和Jan Willem Klop撰写的ACP 到目前为止,这三者似乎都非常活跃,并且已经对它们进行了大量研究。 这些方法的主要异同是什么?在没有统一模型统一领域的意义上,为什么过程代数的研究发散而不是收敛?

4
每年的CPU频率
我知道自2004年以来,摩尔定律就不再为CPU时钟速度工作。我正在寻找一个显示此图的图表,但找不到它:大多数图表都显示晶体管的数量或每年的容量。 从过去的几十年到今天,我在哪里可以找到一些数据来显示计算机的CPU频率(一切正常,个人计算机,服务器,笔记本电脑……)? 我可以自己绘制的原始数据也很好(哼,可能更好)。

3
是否有一种算法可以在
此问题是从理论计算机科学堆栈交换迁移而来的,因为可以在计算机科学堆栈交换上回答。 迁移 7年前。 我想证明或反对一种算法的存在,该算法在给定整数数组下找到三个索引和,使得且(或发现没有这样的三元组)线性时间。AAAi,ji,ji, jkkki&lt;j&lt;ki&lt;j&lt;ki < j < kA[i]&lt;A[j]&lt;A[k]A[i]&lt;A[j]&lt;A[k]A[i] < A[j] < A[k] 这不是一个作业问题。我在一个编程论坛上看到它是“尝试实现这种算法”。我怀疑经过各种实验后这是不可能的。我的直觉告诉我,但这并不算什么。 我想正式证明这一点。你怎么做呢?理想情况下,我希望逐步看到一个证明,然后,如果您愿意,可以对如何证明/证明这样的简单问题进行一些解释。如果有帮助,请举一些例子: [1,5,2,0,3] → (1,2,3) [5,6,1,2,3] → (1,2,3) [1,5,2,3] → (1,2,3) [5,6,1,2,7] → (1,2,7) [5,6,1,2,7,8] → (1,2,7) [1,2,999,3] → (1,2,999) [999,1,2,3] → (1,2,3) [11,12,8,9,5,6,3,4,1,2,3] → (1,2,3) [1,5,2,0,-5,-2,-1] → (-5,-2,-1) 我以为有人可以遍历,并且每次有一个(即我们当前的)时,我们都会创建一个新的三元组并将其推入数组。我们继续步进并比较每个三元组,直到完成其中一个三元组。所以,这就像,!但是我认为这比仅仅更复杂,因为在最坏的情况下,我们的三元组数组中三元组的数量将对应于输入列表的大小。AAAi&lt;ji&lt;ji < jjjj[1,5,2,0,-5,-2,-1] → 1..2.. -5.. -2.. -1[1,5,2,0,-5,-2,3,-1] …

2
具有嵌套组件的归纳类型的递归定义
考虑归纳类型,它在嵌套但严格为正的位置中具有一些递归出现。例如,具有节点的有限分支的树使用通用列表数据结构来存储子级。 Inductive LTree : Set := Node : list LTree -&gt; LTree. 通过对树和树列表进行递归来定义这些树的递归函数的幼稚方法不起作用。这是带有size计算节点数的函数的示例。 Fixpoint size (t : LTree) : nat := match t with Node l =&gt; 1 + (size_l l) end with size_l (l : list LTree) : nat := match l with | nil =&gt; 0 | cons …

1
无上下文语言的机器,不会因不确定性而获得额外的功能
考虑计算的机器模型时,Chomsky层次结构通常由(按顺序),有限自动机,下推自动机,线性界自动机和图灵机来表征。 对于第一个和最后一个级别1(常规语言和递归可枚举语言),无论我们考虑确定性机器还是非确定性机器,即DFA等同于NFA,DTM等同于NTM 2,对模型的功能都没有影响。 但是对于PDA和LBA,情况则有所不同。与非确定性PDA相比,确定性PDA识别的语言严格更少。确定性LBA是否与非确定性LBA一样强大,这也是一个重大的开放性问题[1]。 这提示了我的问题: 是否存在一种可以描述上下文无关语言的机器模型,但对于非确定性而言,机器模型没有额外的功能吗?(如果没有,那么CFL是否具有某些特性可以说明其原因?) (对我而言)似乎不太可能证明无上下文语言以某种方式需要非确定性,但是似乎没有(确定的)确定性机器足以满足要求的机器模型。 扩展问题是相同的,但是对于上下文相关的语言。 参考文献 S.-Y. Kuroda,“语言和线性绑定自动机的类”,信息与控制,7:207-223,1964。 脚注 意见的补充问题是,乔姆斯基层次结构的级别(按集合包含排序)是否为3到0而不是0到3? 明确地说,我说的是只能识别的语言。显然,复杂性问题会受到这种变化的根本影响。

4
复杂度类别,其中
研究计算复杂性类别的一种可能动机是了解不同类型的计算资源(随机性,不确定性,量子效应等)的力量。如果我们从这个角度看待它,那么似乎我们可以得到一个合理的公理,来尝试表征某些模型中哪些计算是可行的: 任何可行的计算总是可以将另一个可行的计算作为子例程调用。换句话说,假设程序被认为可以执行。然后,如果我们通过连接和构造一个新程序,以便对进行子例程调用,那么这个新程序也是可行的。P Q P QP,QP,QP,QPPPQQQPPPQQQ 转换为复杂度类的语言,此公理符合以下要求: 如果是为了捕捉一个复杂类计算是可行的一些模式,那么就必须有。C C = CCCCCC=CCC=CC^C = C (这里表示中可以从调用oracle的计算;这是一个oracle复杂性类。)因此,如果满足,我们就可以将复杂性类称为合理。 C C C C C C = CCCCCC^CCCCCCCCCC CC=CCC=CC^C=C 我的问题:我们知道什么样的复杂性类是合理的(通过这种合理性的定义)? 举例来说,是合理的,因为。我们有吗?什么?满足此标准的其他一些复杂度类别又是什么?P P = P B P P B B P P = B P P B Q P B Q P = B Q PPPPPP=PPP=PP^P=PBPPBPP=BPPBPPBPP=BPPBPP^{BPP} = BPPBQPBQP=BQPBQPBQP=BQPBQP^{BQP} …


2
将以下问题简化为SAT
这是问题所在。给定,其中每个。是否存在子集,其大小最大为,使得所有?我正在尝试将此问题简化为SAT。我的解决方案的想法是为1到每一个变量。对于每个,如果,则创建一个子句。然后将所有这些子句放在一起。但这显然不是一个完整的解决方案,因为它不代表的约束。k,n,T1,…,Tmk,n,T1,…,Tmk, n, T_1, \ldots, T_mTi⊆{1,…,n}Ti⊆{1,…,n}T_i \subseteq \{1, \ldots, n\}S⊆{1,…,n}S⊆{1,…,n}S \subseteq \{1, \ldots, n\}kkkS∩Ti≠∅S∩Ti≠∅S \cap T_i \neq \emptysetiiixixix_innnTiTiT_i(xi1∨⋯∨xik)(xi1∨⋯∨xik)(x_{i_1} \vee \cdots \vee x_{i_k})Ti={i1,…,ik}Ti={i1,…,ik}T_i = \{i_1, \ldots, i_k\}SSS最多包含元素。我知道我必须创建更多的变量,但是我不确定如何。所以我有两个问题:kkk 我的解决方案思路是否正确? 如何创建新变量,以便可以将它们用于表示基数约束?kkk

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.