算法可以是一条指令吗?

问题描述

算法这个词最常见的定义是:

“算法是一组明确的指令

说的对吗

“算法是一组明确的指令/指令

简单的算法可以是一条指令吗?

解决方法

你引用的定义说一个算法是一个“有限有序集”,它不仅允许一个算法是一个单一的指令(即一个具有一个元素的集合),它甚至允许对于具有指令(即空集)的算法。

也就是说,我们不应该从字面上理解“有限有序集合”,因为集合不能有重复的元素,而算法可以有重复的指令。此外,“相同”算法可以有多种不同的“实现”,它们并不是严格相同的有序指令集;例如,参见 Rosetta Code,其中列出了冒泡排序算法的许多不同实现,它们在严格的数学意义上都是不同的“指令集”,但在程序员通常理解的意义上它们是相同的“算法”和计算机科学家。

所以真正的答案是,如果您定义“算法”一词来允许,那么算法可以是单个指令,并且大多数定义要么允许它,不明确排除它,要么并不意味着严格无论如何,数学定义。

作为一个语法注释,没有必要说“指令集/指令集”,以包含集合大小为 1 的可能性;如果您想排除这种可能性,则必须说“至少包含两条指令”

,

可以说是的,例如,您可能有一个将两个值相加的算法(或更有趣的是 vectors of values?)

这可能既是您的编程语言中的一条指令,也可能是处理器中的一条指令支持!

处理器可能会做大量工作来执行指令(并且肯定会有自己的算法来执行此操作!),但只有一个指令


然而,你如何定义这样的东西有些模糊(所以我不会太担心),例如如果你为自定义处理器编译(比如一个写到 FPGA board ),你可以用巨大的算法复杂性来制作你自己的指令。

.. 或在逻辑处理器(例如著名的 JVM)或中间表示(例如 LLVM IR)上,您可能会遇到这样的情况:代码中的一条指令变成了逻辑系统,但随后由现代处理器上的单个操作支持(我不知道这种情况的真实情况,但它肯定会发生在 LLVM 中)

,

在那种情况下,您通常会将其称为指令,但我认为这也是正确的。归根结底,这只是一个解释问题,就像问水是否湿一样。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...