一个算法可以是一条指令吗



单词算法最常见的定义是:

"一个算法是一个模糊的指令的有限有序集";

说正确吗

"一个算法是一个模糊的指令/指令"的有限有序集合;

一个算法可以是一条指令吗

您引用的定义说算法是"有限有序集">,这不仅允许算法是单个指令(即具有一个元素的集合(,还允许算法有指令(即空集(。

也就是说,我们不应该接受"有限有序集">太字面了,因为一个集合不能有重复的元素,而一个算法可以有重复的指令。此外,可以存在多个不同的";实现";";相同的";算法,其不会严格地是完全相同的有序指令集;例如参见列出了气泡排序算法的许多不同实现的Rosetta Code;指令集";在严格的数学意义上,但它们是相同的"算法";在程序员和计算机科学家通常理解的意义上。

因此,真正的答案是,如果你定义单词";算法";为了允许这一点,大多数定义要么允许,要么不明确排除,要么无论如何都不意味着是严格的数学定义。

作为语法注释,不必说"指令/指令集">以便包括集合具有大小1的可能性;你会不得不说"至少两个指令的集合">如果你想排除这种可能性

可以说是的,例如,您可能有一种算法,可以添加两个值(或者更有趣的是,值的矢量?(

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

处理器可能会做大量的工作来执行指令(当然也会有自己的算法来执行!(,但它只有一条指令


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

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

在这种情况下,通常只将其称为指令,但我认为这也是正确的。一天下来,这只是一个解释的问题,就像问水是否湿润一样。

最新更新