programming-languages - 编写尽可能长的循环

标签 programming-languages loops computer-science

最近我在一次技术讨论中被问到这个问题。考虑到要在其上运行的机器/体系结构,在计算科学中可以编写的最长循环是什么?这个循环必须尽可能长,但不是无限循环,并且不应该最终导致程序崩溃(递归等......)

老实说,我不知道如何解决这个问题,所以我问他是否可行。他说,使用一些计算机科学概念,你可以得出一个可能不切实际但仍然不是无限的假设数字。

这里的任何人;知道如何分析/解决这个问题。

附言为可以存储最高数值的类型选择一些最高限制显然不是一个答案。

提前致谢,

最佳答案

您正在进入图灵机领域。

简单地说(让我们留在确定性领域......)您的计算机/机器可以处于算法期间传递的有限数量的状态。每个状态都是唯一的,并且只会出现一次,否则根据定义,您将陷入无限循环。像“转到”。
我们可以消除这个限制,但它没有多大意义,因为这样可以找到一个简单的算法,它总是比所有其他可能的算法多运行一次循环。

所以这取决于你可以通过“它的 ram”天真地翻译的机器可能的状态。

所以现在的问题是:可以处于 X 种状态的机器上最长的循环是什么?和维基百科给出 the answer

关于programming-languages - 编写尽可能长的循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4522305/

相关文章:

compiler-construction - 闭包转换和高阶函数调用的单独编译

computer-science - “in constant time”意味着什么?

variables - 什么类型的变量包含一个范围?

javascript - 带有嵌套 For 循环的进度条

Python:循环遍历目录并使用文件名作为数据框名称保存每个文件

java - 如何从 double 数据类型值集中获取最大值?

C 到 MIPS 汇编语言

javascript - 这个 QuickSort 实现有什么问题?

c# - 为什么 Scala 和 C# lambda 有双箭头?

reflection - 基于镜子的反射和传统反射有什么区别?