A menos que te interese la matemática o la programación, la palabra "algoritmo" podría ser griega para ti, pero es uno de los componentes básicos. de todo lo que estás usando para leer este artículo. Aquí hay una explicación rápida de lo que son y cómo funcionan.
Descargo de responsabilidad: no soy profesor de matemáticas o ciencias de la computación, por lo que no todos los términos que uso son técnicos. Eso es porque estoy tratando de explicar todo en inglés simple porque las personas no se sienten cómodas con las matemáticas. Dicho esto, hay algunas matemáticas involucradas, y eso es inevitable. Los geeks de matemáticas, pueden corregirlo o explicarlo mejor en los comentarios, pero por favor, manténgalo simple para los matemáticamente inclinados entre nosotros.
Imagen de Ian Ruotsala
La palabra ' el algoritmo 'tiene una etimología similar a' álgebra ', excepto que esto se refiere al matemático árabe en sí, al-Khwarizmi (solo un bocado interesante). Un algoritmo, para los no programadores entre nosotros, es un conjunto de instrucciones que toman una entrada, A, y proporcionan una salida, B, que cambia los datos implicados de alguna manera. Los algoritmos tienen una amplia variedad de aplicaciones. En matemáticas, pueden ayudar a calcular funciones a partir de puntos en un conjunto de datos, entre cosas mucho más avanzadas. Además de su uso en la programación, juegan un papel importante en cosas como la compresión de archivos y el cifrado de datos.
Digamos que su amigo lo está esperando en una tienda de comestibles y lo está guiando hacia tú. Usted dice cosas como "entre por las puertas del lado derecho", "pase la sección del pescado a la izquierda" y "si ve la lechería, me pasó". Los algoritmos funcionan así. Podemos usar un diagrama de flujo para ilustrar las instrucciones según los criterios que conocemos con anticipación o averiguar durante el proceso.
(imagen titulada "Rutina para romper el hielo" EDIT: cortesía de Trigger and Freewheel)
Desde START, lo haría vaya por el camino, y dependiendo de lo que pase, siga el "flujo" hasta el resultado final. Los diagramas de flujo son herramientas visuales que pueden representar más comprensiblemente un conjunto de instrucciones usadas por las computadoras. De manera similar, los algoritmos ayudan a hacer lo mismo con más modelos matemáticos.
Usemos un gráfico para ilustrar las diversas formas en que podemos dar instrucciones.
Podemos expresar este gráfico como una conexión entre todos puntos. Para reproducir esta imagen, podemos darle un conjunto de instrucciones a otra persona.
Método 1
Podemos representar esto como una serie de puntos, y la información seguiría la forma estándar de graph = {(x1) , y1), (x2, y2), ..., (xn, yn)}.
grafica = {(0,0), (3,0), (3,3), (5,5), ( 7,10), (8,7), (9,4), (10,1)}
Es bastante fácil trazar cada punto, uno después del otro, y conectarlos al punto anterior. Sin embargo, imagina un gráfico con mil puntos o segmentos múltiples yendo en todas direcciones. Esa lista tendría una gran cantidad de datos, ¿verdad? Y luego tener que conectar cada uno, uno a la vez, puede ser una molestia.
Método 2
Otra cosa que podemos hacer es dar un punto de partida, la pendiente de la línea que lo separa del siguiente punto, y indique dónde esperar el siguiente punto usando la forma estándar de graph = {(punto de inicio}, [m1, x1, h1], ..., [mn, xn, hn]}. Aquí, la variable 'm' representa la pendiente de la línea, 'x' representa la dirección para contar (ya sea x o y), y 'h' te dice cuántos contar en dicha dirección. También puedes recordar dibujar un punto después de cada movimiento.
graph = {(0,0), [0, x, 3], [0, y, 3], [1, x, 2], [2.5, x, 2], [-3, x, 1], [- 3, x, 1], [-3, x, 1]}
Terminará con el mismo gráfico. Puede ver que los últimos tres términos de esta expresión son los mismos, por lo que es posible que podamos recójalo diciendo "repite eso tres veces" de alguna manera. Digamos que cada vez que veas la variable 'R' aparece, significa repetir lo último. Podemos hacer esto:
graph = {(0 , 0), [0, x, 3], [0, y, 3], [1, x, 2], [2.5, x, 2], [-3, x, 1], [R = 2]}
¿Qué pasa si los puntos individuales realmente no importan, y solo el gráfico en sí? Podemos consolidar esas tres últimas secciones de la siguiente manera:
graph = {(0,0), [0, x, 3], [0, y, 3], [1, x, 2], [2.5, x, 2], [-3, x, 3]}
Acorta las cosas un poco desde donde estaban antes.
Método 3
Probemos hacer esto de otra manera.
y = 0, 0≤x≤3
x = 0, 0 ≤y≤3
y = x, 3≤x≤5
y = 2.5x-7.5, 5≤x≤7
y = -3x + 29, 7≤x≤8
y = -3x + 29, 8≤x≤9
y = -3x + 29, 9≤x≤10
Aquí lo tenemos en términos algebraicos puros. Una vez más, si los puntos en sí mismos no importan y solo el gráfico lo hace, podemos consolidar los últimos tres elementos.
y = 0, 0≤x≤3
x = 0, 0≤y≤3
y = x, 3≤x≤5
y = 2.5x-7.5, 5≤x≤7
y = -3x + 29, 7≤x≤10
Ahora, qué método eliges depende de tus habilidades Tal vez seas bueno con las matemáticas y los gráficos, por lo que eliges la última opción. Tal vez eres bueno navegando, entonces eliges la segunda opción. Sin embargo, en el ámbito de las computadoras, estás haciendo muchos tipos diferentes de tareas y la capacidad de la computadora realmente no cambia. Por lo tanto, los algoritmos se optimizan para las tareas que completan.
Otro punto importante a tener en cuenta es que cada método se basa en una clave. Cada conjunto de instrucciones es inútil a menos que sepa qué hacer con ellos. Si no sabes que se supone que debes trazar cada punto y conectar los puntos, el primer conjunto de puntos no significa nada. A menos que sepa qué significa cada variable en el segundo método, no sabrá cómo aplicarlas, al igual que la clave de un cifrado. Esa clave también es una parte integral del uso de algoritmos y, a menudo, esa clave se encuentra en la comunidad o mediante un "estándar".
Cuando descarga un archivo .zip, extrae el contenido para que puedes usar lo que está dentro de él. Hoy en día, la mayoría de los sistemas operativos pueden sumergirse en archivos .zip como si fueran carpetas normales, haciendo todo en segundo plano. En mi máquina con Windows 95 hace más de una década, tuve que extraer todo manualmente antes de poder ver algo más que los nombres de los archivos dentro. Eso es porque lo que estaba almacenado en el disco como archivo .zip no estaba en forma utilizable. Piensa en un sofá extraíble. Cuando quiera usarlo como cama, debe quitar los cojines y desplegarlo, lo que ocupa más espacio. Cuando no lo necesite o desee transportarlo, puede plegarlo nuevamente.
Los algoritmos de compresión se ajustan y optimizan específicamente para los tipos de archivos a los que están dirigidos. Los formatos de audio, por ejemplo, usan una forma diferente de almacenar datos que, cuando son decodificados por el códec de audio, darán un archivo de sonido similar a la forma de onda original. Para obtener más información sobre esas diferencias, consulte nuestro artículo anterior, ¿Cuáles son las diferencias entre todos esos formatos de audio? Los formatos de audio sin pérdida y los archivos .zip tienen algo en común: ambos generan los datos originales en su forma exacta después del proceso de descompresión. Los códecs de audio perdidos usan otros medios para ahorrar espacio en disco, como recortar frecuencias que no pueden ser escuchadas por oídos humanos y suavizar la forma de onda en secciones para eliminar algunos detalles. Al final, aunque es posible que no podamos realmente escuchar la diferencia entre un MP3 y una pista de CD, definitivamente hay un déficit de información en el primero.
Los algoritmos también se usan para proteger datos o comunicación líneas. En lugar de almacenar datos para que use menos espacio en disco, se almacenan de manera indetectable por otros programas. Si alguien roba tu disco duro y comienza a escanearlo, puede recoger datos incluso cuando eliminas archivos porque los datos en sí aún están allí, incluso aunque la ubicación de reenvío haya desaparecido. Cuando se cifran los datos, lo que se almacena no se parece a lo que es. Por lo general, parece aleatorio, como si la fragmentación se hubiera acumulado con el tiempo. También puede almacenar datos y hacerlos aparecer como otro tipo de archivo. Los archivos de imagen y música son buenos para esto, ya que pueden ser bastante grandes sin levantar sospechas, por ejemplo. Todo esto se hace mediante el uso de algoritmos matemáticos, que toman algún tipo de entrada y la convierten en otro tipo de salida muy específico. Para obtener más información sobre cómo funciona el cifrado, consulte Explicaciones de HTG: ¿Qué es el cifrado y cómo funciona?
Los algoritmos son herramientas matemáticas que proporcionan una variedad de usos en la informática. Trabajan para proporcionar un camino entre un punto de inicio y un punto final de una manera consistente, y proporcionan las instrucciones para seguirlo. ¿Sabes más de lo que destacamos? ¡Comparte tus explicaciones en los comentarios!
Cómo escribir un script por lotes en Windows
¿Sabe cómo usar el símbolo del sistema? Si lo hace, puede escribir un archivo por lotes. En su forma más simple, un archivo por lotes (o secuencia de comandos por lotes) es una lista de varios comandos que se ejecutan cuando hace doble clic en el archivo. Los archivos por lotes vuelven a DOS, pero aún funcionan en versiones modernas de Windows.
¿Por qué los editores hexadecimales reciben el nombre de editores binarios?
A veces los nombres y términos son intercambiables y todos entienden a qué se refieren sin confusión, pero a veces las cosas no son tan claras y dejarte con más preguntas que respuestas. La publicación de preguntas y respuestas SuperUser de hoy nos ayuda a aclarar las cosas para un lector confundido.