Definición: ¿puede un algoritmo ser una sola instrucción?

CorePress2024-01-25  8

Cerrado. Esta pregunta se basa en opiniones. Actualmente no acepta respuestas.

¿Quieres mejorar esta pregunta? Actualice la pregunta para que pueda responderse con hechos y citas editando esta publicación.

Cerrado

hace 2 años

.

mejorar esta pregunta

La definición más común de la palabra algoritmo es:

"Un algoritmo es un conjunto finito y ordenado de instrucciones inequívocas"

es correcto decir

"Un algoritmo es un conjunto finito y ordenado de instrucciones/instrucción inequívocas"

¿Puede un algoritmo ser simplemente una sola instrucción?



------------------------------------

La definición que usted cita dice que un algoritmo es un "conjunto ordenado finito", lo que no sólo permitiría que un algoritmo fuera un soloinstrucción (es decir, un conjunto con un elemento), incluso permite que un algoritmo no tenga instrucciones (es decir, un conjunto vacío).

Dicho esto, no debemos tomar el concepto de "conjunto ordenado finito". demasiado literalmente, porque un conjunto no puede tener elementos repetidos, mientras que un algoritmo puede tener instrucciones repetidas. Además, puede haber múltiples "implementaciones" del "mismo" algoritmo que no sería estrictamente el mismo conjunto ordenado de instrucciones; consulte, por ejemplo, el Código Rosetta, que enumera muchas implementaciones diferentes del algoritmo de clasificación de burbujas, todas las cuales son "conjuntos de instrucciones" diferentes. en un sentido matemático estricto, pero son el mismo "algoritmo" en el sentido que normalmente entienden los programadores e informáticos.

Así que lo realLa respuesta es que un algoritmo puede ser una sola instrucción si define la palabra "algoritmo" para permitir eso, y la mayoría de las definiciones lo permiten, no lo excluyen específicamente o no pretenden ser definiciones matemáticas estrictas de todos modos.

Como nota gramatical, no es necesario decir "conjunto de instrucciones/instrucción" para incluir la posibilidad de que el conjunto tenga talla 1; tendrías que decir "conjunto de al menos dos instrucciones" si quisieras excluir esa posibilidad.



------------------------------------

Podría decirse que sí, por ejemplo, es posible que tenga un algoritmo que agregue doso valores (¿o más interesantemente vectores de valores?)

¡Esto puede ser tanto una instrucción en su lenguaje de programación como respaldada en el procesador por una sola instrucción!

El procesador puede hacer una gran cantidad de trabajo para ejecutar la instrucción (¡y ciertamente tendría un algoritmo propio para hacerlo!), pero solo habría una instrucción para él.

Sin embargo, existe cierta confusión en la forma de definir tal cosa (por lo que no me preocuparía demasiado por eso), por ejemplo, si compila para un procesador personalizado (como uno escrito en una placa FPGA), podría crear sus propias instrucciones con una tremenda complejidad algorítmica que las respalde.

.. o en un procesador lógico (como el famoso JVM) o una representación intermedia (como LLVM IR), es posible que haya casos en los que una instrucciónLa operación en el código se convierte en una colección de instrucciones en el sistema lógico, pero luego está respaldada por una única operación en un procesador moderno (no conozco casos reales de esto, pero ciertamente ocurre con LLVM)



------------------------------------

En ese caso, normalmente lo llamarías simplemente instrucción, pero supongo que eso también sería correcto. Al fin y al cabo es sólo una cuestión de interpretación, como preguntar si el agua está mojada.

Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare