详细内容或原文请订阅后点击阅览
如何优化Slowness的Python程序
编写一个简短的程序,该程序在宇宙diesthe帖子之后完成,如何优化您的python程序以换取slowness,这首先出现在数据科学上。
来源:走向数据科学也可用:本文的生锈版本。本文的Rust版本。
谈论更快地制定Python程序[1,2,3],但是如果我们实现相反的目标怎么办?让我们探索如何使它们变慢 - 荒谬的速度较慢。在此过程中,我们将研究计算的性质,记忆的作用以及数量难以想象的大量规模。
1 2 3 荒谬的慢我们的指导挑战:编写简短的Python程序,该程序非常长时间。
编写简短的Python程序,该程序非常长时间。为此,我们将探索一系列规则集 - 每个规则集定义了我们允许写的程序,通过在停止,内存和程序状态上施加约束来编写哪种程序。这个序列不是一个进步,而是一系列的观点转变。每个规则集有助于揭示有关简单代码如何延长时间的不同事物。
这是我们将调查的规则集:
- 一切顺利 - 无限的环状停止,有限的内存 - 嵌套,固定范围环路,零启发记忆 - 五状态的Turing MachineInfinite,零定位的内存 - 6态的Turing Machine(> 10↑↑15步)Infinite Infinite Infinite,零定位记忆 - 零启发性记忆 - 普通的Python(Compution Pyth)
一切都会发生 - 无限循环
任何事情发生
必须停止,有限的内存 - 嵌套的固定范围循环
必须停止,有限内存
无限,零启动记忆 - 5状态的Turing Machine
无限,零触发记忆
无限,零定位的内存 - 6状态的Turing机器(> 10↑↑15步)
无限,零定位的内存 - 普通python(计算10↑↑15没有图灵机仿真)
旁边:10↑↑15不是错别字或双重指数。这是一个如此之大,以至于“指数”和“天文学”并不描述它。我们将在规则集4中定义它。
规则集4。
我们从最宽松的规则集开始。从那里开始,我们将逐步更改规则,以了解不同的约束如何塑造长期运行的程序的外观 - 以及他们可以教我们的内容。
true:通过
有限内存
n
a
旁边:10↑↑15不是错别字或双重指数。这是一个如此之大,以至于“指数”和“天文学”并不描述它。我们将在规则集4中定义它。规则集4。
我们从最宽松的规则集开始。从那里开始,我们将逐步更改规则,以了解不同的约束如何塑造长期运行的程序的外观 - 以及他们可以教我们的内容。
true:通过有限内存 n
a