计算机科学

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

1
寻找最佳问题顺序以最大程度地减少学生的总时间
假设有一个大学的辅导课。我们有一组问题Q = { q 1 … q k }和一组n个 学生S = { s 1 … s n }。每个学生有问题,即,针对每个学生的特定子集疑问小号Ĵ,让Q Ĵ ⊆ Q是一系列问题,一个学生都有怀疑。假设 ∀ 1 ≤ Ĵ ≤ ñ :Q Ĵ ≠ķkkQ = { q1个… qķ}Q={q1…qk}Q = \{ q_1 \ldots q_k \}ñnn小号= { s1个… 秒ñ}S={s1…sn}S = \{ s_1 \ldots s_n \}sĴsjs_j问Ĵ⊆ QQj⊆QQ_j …

2
计算元素不完全等于其索引±M的排列
最近在算法面试中有人问我这个问题,但未能解决。 给定两个值N和M,您必须计算长度为N的排列数目(使用1到N的数字),以使排列中任何数字与其排列中的位置之间的绝对差不等于M. 示例-如果N = 3且M = 1,则1 2 3和3 2 1是有效的排列,但1 3 2无效,因为数字3位于位置2且它们的差为=M。 我尝试了NxM动态编程,但没有形成不计入重复次数的重复发生。



2
如果一元语言的指数是线性函数,它是否是正规语言?
在为我的正式语言和自动机课程做当前的工作时,我有点陷入涉及一元语言(我希望这是正确的术语)的练习,即基于单个字母的语言。不过,我不想询问具体的练习,而是想出一个更笼统的猜想: 令和。我的猜想是:Σ={a}Σ={a}\Sigma=\{a\}L={af(n)∈Σ∗:n∈N0}L={af(n)∈Σ∗:n∈N0}L=\{a^{f(n)}\in\Sigma^*:n\in\mathbb N_0\} L is regular⇔∃x,y∈N0:f(n)=x⋅n+yL is regular⇔∃x,y∈N0:f(n)=x⋅n+yL\text{ is regular}\Leftrightarrow \exists x,y\in\mathbb N_0:f(n)=x\cdot n+y 这个问题以前见过科学的治疗方法吗?是“明显”正确/错误吗? 对我来说,显然是“,因为人们可以只建立一个DFA与”方向为真的状态,通过所述循环的状态后通过具有读状态和接受当且仅当在状态数。⇐⇐\Leftarrowx+yx+yx+yxxxyyyyyy

2
在计算机科学的背景下,“生产”一词最终如何成为“规则”一词的同义词?
我正在研究正式的语言和生产基础系统(rule-bases systems),我对为什么这两个词“生产”和“规则”在计算机科学的这么多上下文中含义相同感到有些困惑。 在英语中,它们似乎不是同一意思。我不是英语母语人士,但我知道一条规则是指某人在谈论人时不应该/不应该做的事情,或者如果重复多次会得到相同的结果,并且我们说它按某些规则起作用(它的工作方式由每次都相同的某些协议/过程定义)。 生产是指完全不同的东西...当前正在生产/生产的某些实物或软件的阶段。制作某种东西的行为,无论是物理的还是某种艺术品,一些写作,某些绘画,是由某人的身体或心理能力所制成的。我们说具体的东西产生了。 但是,在计算机科学中,这些代表英语完全不同的词在CS中表示同一件事。这个术语在CS中最终是如何相似的。 有某种计算机科学的词源词典。字典告诉我们计算机科学的术语最终是什么? 顺便说一句:有趣的事实:在此Stack Exchange站点中,既没有生产规则也没有规则。


1
测试任意证明是否为圆形?
我当时在考虑证明,然后遇到了一个有趣的观察。因此,证明与通过Curry-Howard同构的程序等效,而圆形证明对应于无限递归。但是从暂停问题中我们知道,在一般测试中,任意程序是否会永久递归是不确定的。用柯里·霍华德(Curry-Howard)表示,这是否意味着没有“证明检查器”可以确定证明是否使用循环推理? 我一直认为,证明应该由容易检查的步骤(与推理规则的应用相对应)组成,检查所有步骤可以使您确信结论是正确的。但是现在我在想:也许实际上不可能编写这样的证明检查器,因为没有办法解决暂停问题并检测循环推理?

1
这是将任何递归过程转换为尾递归的通用方法吗?
看来我已经找到了将任何递归过程转换为尾递归的通用方法: 使用额外的“结果”参数定义帮助程序子过程。 将应用于过程的返回值的参数应用于该参数。 调用此帮助程序过程即可开始。“结果”参数的初始值是递归过程的退出点的值,因此,最终的迭代过程将从递归过程开始收缩的地方开始。 例如,这是要转换的原始递归过程(SICP练习1.17): (define (fast-multiply a b) (define (double num) (* num 2)) (define (half num) (/ num 2)) (cond ((= b 0) 0) ((even? b) (double (fast-multiply a (half b)))) (else (+ (fast-multiply a (- b 1)) a)))) 这是转换后的尾递归过程(SICP练习1.18): (define (fast-multiply a b) (define (double n) (* …

2
参考要求:分类理论,因为它适用于类型系统
我不断听到关于如何必须学习类别理论才能真正理解编程语言理论的信息。到目前为止,我在不涉足类别领域的情况下学到了很多PL。但是,我认为是时候该大踏步地看看我所缺少的了。 不幸的是,我找不到的任何资料似乎都与类型系统或编程没有任何联系。他们说这是计算机科学家对类别理论的入门,但是随后转向一般的抽象废话(我很爱说),而没有给出任何实际的例子或应用。 我想我的问题实际上有两个方面: 范畴论对于理解PL中的“深层概念”是否必不可少? 从实际应用到类型系统和编程的角度来看,有什么资料可以解释类别理论? 到目前为止,我得到的最深入的是模糊的函子概念(据我所知,它似乎与ML中的函子无关)。我对要从类别理论的角度理解monad所需的抽象感到恐惧。

1
组合器演算表达式可以计算哪些函数?
可以将组合器表达式(假设以SK为基础)视为将组合器演算表达式映射到组合器演算表达式的函数。也就是说,可以将表达式视为函数,其中是在SK基础上所有语法有效的组合器表达式的集合。通过将输入应用于表达式,然后简化为正常形式以获取输出,可以执行此映射。XXXX:L→LX:L→LX:L \to LLLL 由于SK基础是Turing完整的,因此可能会天真的认为存在一个SK表达式,该表达式实现了从到任何可计算函数。但是,显然不是这种情况,因为减少的结果将始终为正常形式。这意味着表达式无法具有非正常形式的输出。XXXLLLLLL 因此,我可以将SK微积分表达式视为将映射到,其中是标准形式的SK表达式集。对于任何可计算的映射,是否存在一个实现此映射的SK表达式?还是对组合器演算表达式可以这种方式计算的函数集有进一步的限制?L′L′L'L′L′L'L′L′L'f:L′→L′f:L′→L′f:L'\to L'XXX


3
NP-Complete中可以有任何有限的问题吗?
我的讲师发了言 任何有限的问题都不能是NP完全的 当时他在谈论数独,说的是8x8数独存在有限的解决方案,但是我不记得他到底在说什么。我写下了我引用的便条,但仍然不太了解。 如果我没记错的话,数独是NP完整的。派系问题也是NP-Complete,如果我有4-Clique问题,这不是NP-Complete的有限问题吗?
13 np-complete  np 



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.