我了解数据的“结构”完全取决于布尔代数,但是:
为什么将数据视为离散的数学实体而不是连续的数学实体?
与此相关:
在将数据构造为维中的连续实体时,有哪些缺点或不变性受到侵犯?
我不是该领域的专家,因为我是本科数学学生,所以如果有人像我五岁时那样向我解释这一点,我将非常感激。
我了解数据的“结构”完全取决于布尔代数,但是:
为什么将数据视为离散的数学实体而不是连续的数学实体?
与此相关:
在将数据构造为维中的连续实体时,有哪些缺点或不变性受到侵犯?
我不是该领域的专家,因为我是本科数学学生,所以如果有人像我五岁时那样向我解释这一点,我将非常感激。
Answers:
为什么数据被认为是离散的数学实体而不是连续的实体
这不是一个选择。从理论上和实践上都不可能在数字计算机或任何类型的计算中表示连续的具体值。
请注意,“离散”并不表示“整数”或类似的意思。“离散”与“连续”相反。这意味着,有一台电脑,是真正能够存储非离散的东西,你就需要能够存储两个号码a
,并b
在那里abs(a-b) < ε
对任何任意小的数值ε
。当然,您可以根据需要进行任意操作(使用越来越多的存储空间),但是每台(物理)计算机始终具有上限。无论做什么,您都永远无法制造一台(物理)计算机来存储任意精细解析的数字。
即使您能够用数学结构表示数字(例如π
),也不会改变任何内容。如果存储图形或表示数学公式的任何内容,则它与其他任何内容一样离散。
剩下的只是计算机科学领域以外的一些观点。正如评论所显示的那样,物理主题并非毫无争议,并且正如您所看到的,我以一种相当不信不疑的方式制定了下一段。将“连续体”的概念视为一个微不足道的动机,可以说是一种动机。上面给出的答案不取决于空间是否离散。
注意,所有这些都不是计算机的问题,而是“连续的”含义的问题。例如,并非所有人甚至过去都同意或曾经同意宇宙是连续的(例如,普朗克尺度是否暗示时空是离散的?)。对于某些事物(例如,电子的能量状态以及量子力学中的许多其他特征),我们甚至知道宇宙不是连续的。对于其他人(例如,职位...),陪审团仍未成立(至少关于研究结果的解释...)。(尽管有一个问题,即使它是连续的,我们也无法测量到任意精度=> Heisenberg等)。
在数学中,研究连续体(即实数)会带来许多引人入胜的方面,例如度量理论,这使得实际上不可能完全存储“连续”种类的数字/数据。
全部在实施中。
如果您考虑一下,计算机实际上就是连续设备。所有控制它们如何工作的EM方程都是连续的这一事实很容易表明这一点。离散的是我们用来决定如何使用这些计算设备的模型。我们用来描述计算的抽象机器都是离散的。
这样做的巨大实际优势是可以摆脱许多质量控制挑战。如果我们的计算机模型充分利用了晶体管和电容器的全部连续特性,那么我们将不得不关心我们在很大程度上构建每个晶体管的能力。我们可以在音频世界中看到这一点。在世界各地的发烧友居住的地方,在放大器上花费2000 美元是合理的,该放大器可能具有10个经过精心选择和匹配的晶体管,这些晶体管可以准确地完成他们想要的连续工作。与此形成对比的是,Core i7 CPU中有1,400,000,000个晶体管,而成本却高达 400 美元。
因为我们的计算模型是离散的,所以我们可以将计算机中看到的所有信号建模为离散信号加上一些连续误差项。然后,我们可以通过观察错误的形状是否不适合作为离散信号的一部分来过滤掉错误。
其中一个主要部分是删除抽象模型中的时间项。我们的许多模型不是根据某些物理过程来衡量时间,而是根据某些称为时钟的“逻辑”信号来衡量时间。如果您中断时钟,系统将停止运行,但不会崩溃。它只是清除所有可能存在的模拟错误,并等待时钟的下一个离散脉冲。删除连续时间项可以极大地简化计算和关于计算的证明。相反,我们的时间概念是离散测量的,如算法的P和NP分类所示。
因为:
数字计算机不能存储任意实数。
模拟计算机受到热噪声(如果是电子),摩擦(如果是机械或液压),干扰,对温度变化的敏感性,不可避免的缺陷和老化的困扰。(实验性的)物理学家和工程师就是这样处理这些困难的。大多数计算机科学只是将物理学抽象化。
这是一些关于真实计算的论文:
马克·布拉弗曼(Mark Braverman),斯蒂芬·库克(Stephen Cook),“实物计算:科学计算的基础 ”,AMS通告,2006年3月。
Mark Braverman,关于实函数的复杂性,arXiv:cs / 0502066。
Lenore Blum,《实地计算:图灵遇到牛顿的地方》,AMS通告,2004年10月。
Vasco Brattka,基于实数的可计算性的现实模型,2000年4月。
Vasco Brattka,Peter Hertling,可行的真正随机访问机器,1998年12月。
Lenore Blum,Mike Shub,Steve Smale,关于实数的计算和复杂性理论:NP完备性,递归函数和通用机器,AMS公告,1989年7月。
这是关于模拟计算的论文:
这个词data
源于拉丁词datum
,意思是给出的东西。随着时间的流逝,复数形式已经改变了用法,现在通常以单数和复数形式使用。它也已专门与信息相关联。
请注意,信息项(基准)与其表示形式之间存在差异。
信息论处理(除其他事项外)变量代表的离散信息。这些是可数的实体。例如,速度,位置,质量等都是连续量,但彼此是离散的:质量与位置之间没有任何转换。当用数字表示这些数量时,它们的数据项(无论如何表示)也彼此离散。
另一方面,我们目前的绝大多数计算机都使用某种形式的电荷来表示信息。收费存在或不存在;电路中有电流或没有电流。这也是离散的,但不必如此!正是由于我们技术的发展方式,我们使用了二进制表示。量子计算的发展可能会在不久的将来改变这一状况。模拟计算机将再次兴起,而且我们认为数字必须用二进制表示的观念将被淘汰,这也是不可想象的!
概括地说:data
由离散的信息项组成,每个信息都是一个基准;每个数据不需要使用离散数学来表示,而是目前仅由当代巧合来表示。
我想挑战您的基本前提:
为什么将数据视为离散的数学实体而不是连续的数学实体?
不是。
例如,算法研究是计算机科学的重要子领域,并且有许多算法可以处理连续数据。您可能对计算两个自然数的最大公约数的欧几里得算法很熟悉,但是您知道欧几里得也具有相同算法的几何版本,该算法可以计算两条可比较线的最长公因数吗?这是一个算法(因此也是计算机科学的研究对象)基于实数(即连续数据)的一个示例,即使Euclid并不这样认为。
对算法进行分类的方法有很多,但是一种使用的方法是通过算法的“连续性”对它们进行分类:
其他答案已经提到了可计算性理论中的“真正的计算”,这是计算机科学的另一个重要子领域。
唯一的实际(非常有意思的缺点)缺点是此类数据无法用普通的数字计算机表示。您可以考虑对连续数据的算法,但不能在我们通常用于运行算法的标准计算机上运行它们。
这就是连续数据不如数字数据“可见”的主要原因。
但是,模拟算法的实现实际上并不需要复杂的想象甚至构建。例如,这是一个模拟算法的实现:作者:Andrew Dressel –自己的作品,CC BY-SA 3.0,链接
为了采取更为抽象的方法,无论是在计算机上还是在您的头脑中,任何最终会产生结果的可能的计算都只能处理有限数量的数据。这意味着数据可以用一串符号表示。该字符串可以是数字的数字(“ 42”)或用于创建数据的程序的文本(对于 “ 4 * atan(1)” )。字符串必须是有限的,否则无法读取整个内容以运行程序。
现在,所有可能的有限数据的集合都可以按字典顺序放置,这意味着该集合是可数的。但是,连续实数的集合是不可数的,因此连续体中始终存在无法由给定计算系统存储的数字。由此,我们可以得出结论,存储任意实数需要无限的资源。
数据并不总是被视为离散的。科学编程通常涉及浮点运算。程序员通常会假装所涉及的变量是连续的,同时要牢记数值稳定性的问题,这是由于数据仅以有限的精度存储而造成的。
计算机科学中的数据被认为是离散的。