计算机科学

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

4
O(n log n)描述的函数类的名称是什么?
在“ Big O”中,通用符号具有通用名称(而不是说“某些常数的哦”): O(1)为“常数” O(log n)是“对数” O(n)是“线性” O(n ^ 2)是“二次方” O(n * log n)是??? 它只是“ n log n”还是像上面这样的特殊名称?


2
Tarjan的伪代码如何工作(向熟悉C或Java的人解释)?
短篇小说 多年前,著名的计算机科学家Tarjan写了一本书。它包含绝对奇怪的伪代码。有人可以解释一下吗? 长篇小说 塔里扬(Tarjan)以许多成就而闻名,包括他是八角树的共同发明者。他在1980年代出版了《数据结构和网络算法》一书。 Tarjan书中的所有伪代码都是用他自己设计的语言编写的。伪代码约定非常严格。这几乎是一种真正的语言,可以想象为它编写一个编译器。Tarjan写道,他的语言基于以下三种语言: 迪克斯特拉的守卫命令语言 塞特 阿尔戈尔 我希望熟悉以上一种或两种语言或Tarjan作品的人能够回答我的问题。 用Tarjan语言编写的函数示例如下所示: heap function mesh (heap nodes h1, h2); if key(h1) > key(h2) → h1 ⟷ h2 fi; right (h1) := if right(h1) = null → h2 |right(h1) ≠ null → mesh (right(h1), h2) fi; if rank (left (h1)) < rank (right …

4
有什么常用技术可以减少彼此的问题?
在可计算性和复杂性理论(可能还有其他领域)中,减少是无处不在的。有很多种类,但是原理保持不变:通过将实例映射到L_1中与解决方案等效的实例,可以证明一个问题至少与其他问题一样困难。本质上,我们表明,如果允许L_1的任何求解器使用归约函数作为预处理器,它也可以求解L_2。L 2 L 2大号1个L1L_1大号2L2L_2大号2L2L_2L 1 L 2大号1个L1L_1大号1个L1L_1大号2L2L_2 这些年来,我已经完成了减少的份额,有些事情困扰着我。尽管每个新的减少都需要(或多或少)创造性的构造,但任务可能会让人感到重复。是否有规范的方法库? 人们可以定期采用哪些技术,模式和技巧来构造归约函数? 这应该成为参考问题。因此,请谨慎给出一般的,有说服力的答案,至少由一个例子说明了这一点,但仍然涵盖了许多情况。谢谢!

13
为了使他们对计算机科学产生兴趣,我应该如何应对一堆16-17岁的年轻人?
几周后,我将在我的大学参加某种“开放日”活动。作为这段时间的一部分,我(和同事一起)被给了一大堆高中生两个小时的时间,以及一个足以容纳所有人的计算机实验室,我必须做一些与他们一起进行的一项或多项活动,以鼓励他们学习计算机科学(理想情况下在我的大学,但总体上也是如此)。我绝对不知道该怎么做,欢迎任何建议。
40 education 

7
解释算法渐近复杂度与算法设计实践的相关性
在算法和复杂度中,我们关注算法的渐近复杂度,即,随着输入大小达到无穷大,算法使用的资源量。 在实践中,需要一种能够在有限(尽管可能非常大)实例数量上快速运行的算法。 在我们感兴趣的有限数量的实例上在实践中运行良好的算法不需要具有良好的渐近复杂度(有限数量的实例上的良好性能并不意味着关于渐进复杂性的任何内容)。类似地,具有渐近复杂性的算法在实际中对我们感兴趣的有限数量的实例(例如,由于常量较大)可能无法很好地工作。 为什么我们使用渐近复杂性?这些渐近分析在实践中如何与算法设计相关?

6
计算机如何工作?
我多年来一直是计算机迷。我可以使用多种语言进行编程,甚至可以构建它们。前几天我和一个伙伴坐在一起,问一台计算机实际上是如何取电并用它来做点什么的,而我们只是想不通,谷歌也帮不上什么忙。 我的意思是,计算机如何持续吸收电流并将其变成1和0,然后实际上对那些1和0进行处理,例如打开灯15秒钟? 我了解门(AND,OR,NOR,NAND,NOT)以及有关二极管,电阻器和晶体管的一些知识,但是我认为这是用真正的外行术语解释的理想场所! 有人能指出我正确的方向还是给我一个简短的解释?

9
C实际上是图灵完备的吗?
我试图向某人解释C是图灵完备的,并且意识到我实际上并不知道它在技术上确实是图灵完备的。(C代表抽象语义,而不是实际实现。) 就我所知,“明显”的答案(大致:它可以处理任意数量的内存,因此它可以仿真RAM机器,因此它是图灵完成的)实际上是不正确的,尽管C标准允许要使size_t任意大,必须将其固定为一定的长度,并且无论将其固定为多长都是有限的。(换句话说,尽管您可以给定一台任意停止的图灵机,选择一个size_t的长度以使其能够“正常”运行,但没有办法选择一个size_t的长度,以使所有停止的图灵机都能正常运行) 所以:C99 Turing完成了吗?


7
计算机科学的定义是什么,计算机科学中的科学是什么?
我正在攻读计算机科学学士学位,但是我还处于初期阶段,并且我相信我会为自己的选择感到满意,因为这似乎是一种学术上和职业上灵活的教育。 话虽如此,关于计算机科学在学术界,私营部门和“计算机科学”中实际的“科学”方面的真正定义似乎有各种各样的定义,我想得到答案(或共同思考)关于可以应用计算机科学教育的事物的广度,以及最终计算机科学领域所追求的各种途径。

3
确定动态编程的子问题
我已经多次使用动态编程技术,但是今天有一个朋友问我如何定义子问题,我意识到我无法提供客观的正式答案。您如何正式定义要使用动态编程解决的问题的子问题?

9
了解序列化
我是一名软件工程师,在与一些同事讨论之后,我意识到我对概念序列化没有很好的了解。据我了解,序列化是将某些实体(例如,OOP中的对象)转换为字节序列的过程,以便可以存储或传输所述实体以供后续访问(“反序列化”过程)。 我遇到的麻烦是:不是所有的变量(无论是像原始int对象还是复合对象)都已由字节序列表示?(当然是,因为它们存储在寄存器,内存,磁盘等中) 那么,什么使序列化成为如此深刻的话题呢?要序列化一个变量,我们不能只将这些字节存储在内存中,然后将它们写入文件吗?我错过了什么错综复杂的事情?
38 storage 

5
“哈希”到底是什么(又到底是什么)?
我听说过“散列”一词在不同的上下文中(在计算世界中)都有不同的含义。例如,在“难于学习Python”这本书中,在字典一章中说:“ Python称它们为“字典”。其他语言称它们为“哈希”。”那么,哈希字典是否有用? 该词的另一种常见用法是与加密有关。我也听说(和阅读)人们在高级编程中使用“哈希”一词作为特定功能。 那到底是什么呢? 任何人(有时间并且有知识的人)都可以友善地解释“哈希(或哈希)”的本质吗?

3
为什么Mersenne Twister被认为是很好的?
Mersenne Twister被广泛认为是很好的。哎呀,CPython消息人士说,它“是现有的经过最广泛测试的生成器之一”。但是,这是什么意思?当被要求列出该生成器的属性时,我所能提供的大多数内容都是不好的: 它是庞大而僵化的(例如,无搜索或多个流), 尽管状态规模庞大,但它未能通过标准的统计测试, 它在0左右有严重问题,表明它对自己的随机性很差, 不太快 等等。与诸如XorShift *的简单RNG相比,它也无可避免地变得复杂。 因此,我寻找一些信息,以了解为什么有人认为这很好。原始论文对“超天文学”时期和623维均匀分布发表了很多评论,他说 在许多已知的测量方法中,基于较高尺寸均匀性的测试(如下面所述的光谱测试(参见Knuth [1981])和k分布测试)被认为是最强的。 但是,对于此属性,发电机会被足够长的计数器打败!这没有评论本地分布,这是您实际上在生成器中关心的(尽管“本地”可能意味着各种事情)。甚至CSPRNG都不在意这么长时间,因为这并不重要。 论文中有很多数学,但据我所知,这实际上与随机性无关。几乎所有对此的提及都会迅速跳回这些原始的,基本上无用的主张。 似乎人们以牺牲较旧,更可靠的技术为代价而跳上了潮流。例如,如果您将LCG中的单词数增加到3(比Mersenne Twister的“仅624”少得多)并在每次通过时输出最高单词,则它会通过BigCrush(TestU01测试套件的更难部分)),尽管Twister失败了(PCG纸,图2)。鉴于此,以及证据不足,我能够在支持梅森倍捻机的发现,是什么做的原因关注过其他的选择青睐呢? 这也不是纯粹的历史。有人告诉我,Mersenne Twister在实践中至少比PCG random更为有效。但是用例是否如此清晰,以至于它们可以比我们的测试组合做得更好?一些谷歌搜索暗示他们可能不是。 简而言之,我想知道Mersenne Twister在其历史背景或其他方面如何获得广泛的正面声誉。一方面,我显然对它的质量表示怀疑,但另一方面,很难想象它是完全随机发生的。

5
是否有一个已知的最大值,可以压缩多少个0和1?
很久以前,我读过一篇报纸上的文章,其中一位教授说,将来我们将能够将数据压缩到仅两位(或类似的东西)。 这当然是不正确的(可能是我对他确切说的话的记忆是不正确的)。可以理解的是,将0和1的任何字符串压缩为两位都是不切实际的,因为(即使在技术上可行),太多不同种类的字符串最终会压缩为相同的两位(因为我们只有'01 '和'10'可供选择)。 无论如何,这让我想到了根据某种方案压缩任意长度的0和1的字符串的可行性。对于这种字符串,字符串长度(0与1之间的比率可能无关紧要)与最大压缩之间是否存在已知关系? 换句话说,有没有一种方法可以确定可压缩为0和1的字符串的最小(最小)长度? (在这里,我对数学上的最大压缩感兴趣,而不是当前在技术上可能实现的最大压缩。)

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.