如何优化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
  • 一切都会发生 - 无限循环
  • 任何事情发生
  • 必须停止,有限的内存 - 嵌套的固定范围循环
  • 必须停止,有限内存
  • 无限,零启动记忆 - 5状态的Turing Machine
  • 无限,零触发记忆
  • 无限,零定位的内存 - 6状态的Turing机器(> 10↑↑15步)
  • 无限,零定位的内存 - 普通python(计算10↑↑15没有图灵机仿真)
  • 旁边:10↑↑15不是错别字或双重指数。这是一个如此之大,以至于“指数”和“天文学”并不描述它。我们将在规则集4中定义它。
    规则集4。

    我们从最宽松的规则集开始。从那里开始,我们将逐步更改规则,以了解不同的约束如何塑造长期运行的程序的外观 - 以及他们可以教我们的内容。

    true:通过
    有限内存 n a