我有许多我想在论文中写的小型算法。它们相对较短且简洁。但是,我不想用伪代码(例如Cormen甚至是Knuth)编写它们,而是想用它们的代数表示形式(更线性和更好的LaTeX渲染)。但是,如果有任何东西,我找不到关于最佳注释的资源:我如何表示一个循环?如果?在列表中添加一个元组?

你们中有人遇到过这个问题,并且以某种方式解决了吗?

谢谢。

编辑:谢谢大家。我认为我对这个问题的措辞很差。再说一遍,希望我能说得更清楚:在数学记数法中谈论循环和if-then子句的常用记法是什么?例如,我可以使用$acc \leftarrow acc \cup \langle i,i+1 \rangle$表示列表的“添加”方法。

最佳答案

我经常看到用数学符号表示的if表达式。循环的通常用法是recurrence relation或等效地递归定义的函数。

例如,这是在Wikipedia上定义Ackermann function的方式:

这张图片很不错,因为它感觉像是数学上的味道,但是您可以清楚地以几乎完全书面形式键入它并有一个实现。并非总是可能做到这一点。

对应于循环的其他数学符号包括∑-notation for summationset-builder notation

我希望这回答了你的问题!但是,如果您的目的是描述某件事的完成方式并让某人理解,那么我认为假设数学家更喜欢看方程式可能是错误的。我认为它们不是可互换的工具(尽管具有图灵等效性)。如果您的算法涉及可变数据结构,那么程序代码可能会比方程式更好地解释它。

关于math - 代数表示代码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2157484/

10-13 04:54