Cómo ponerse al día con las matemáticas necesarias para poder comprender y analizar algoritmos si no sé sobre cosas como el registro

Los algoritmos no están inherentemente vinculados a las matemáticas. Todo lo que hace un algoritmo es decirle a una rata computadora / persona / laboratorio que haga algunas cosas, por un tiempo, dadas algunas condiciones, etc. Es un razonamiento, cuantificado, desarrollado para convertir las entradas en las salidas deseadas.

De acuerdo, saber cómo manipular los números hará que los algoritmos de su computadora sean más elegantes / rápidos, pero esta idea de que necesita ‘conocer’ los logaritmos para escribir un algoritmo es una tontería y me dice que en realidad no ha intentado escribir o comprender un algoritmo.

Como escribió Donald Knuth, “la mejor manera de aprender un algoritmo es probarlo … inmediatamente tome lápiz y papel y busque un ejemplo”. Encuentre un sitio con problemas de programación de computadoras (hay literalmente cientos), explore sus foros de soluciones e intente comprender los algoritmos que usan los solucionadores. Use lápiz y papel, rotulador y pizarra, lo que sea. Solo trabaja en ello. Si te encuentras con algo que no puedes entender, búscalo. Si aún no puede entender, encuentre una solución diferente.

El registro es bastante fácil: es lo opuesto a los poderes. Por lo general, cuando las personas en general hablan de registros (no en tierra de computadoras), hablan de potencias de 10. 10 ^ 3 = 1000. Registro (base 10) 1000 = 3.

Cuando hablamos de iniciar sesión en tierra de computadora, generalmente estamos hablando de potencias de 2 en lugar de 10. Por ejemplo, digamos que estoy pensando en un número entero de 1 a 1,000,000. Se supone que debes adivinarlo, y te diré más o menos. Una forma realmente horrible de adivinar sería: 1? mayor. 2? mayor. 3? mayor. Eso tomará un promedio de 500,000 conjeturas. Ugh

Por supuesto, sabes cómo hacerlo mejor: comienza con una conjetura de medio millón. Si es menor, adivine a mitad de camino entre 1 y 500,000. Si es mayor, entre 500,000 y 1,000,000. Cada suposición reducirá las respuestas potenciales a la mitad. Eso significa que este es un algoritmo log (n): para 2 ^ x cosas, el número de operaciones (aquí, conjeturas) que necesita es aproximadamente x. Es lo mismo que decir que para n cosas, el número de conjeturas es log (base 2) de n. (Si está prestando especial atención, es posible que observe un error “off-by-one” aquí). Está bien: cuando hablamos de rendimiento, decimos “a medida que n se hace realmente grande, ¿qué sucede con el rendimiento?” cosas importantes, e incluso constantes. Si hacemos operaciones 5x ^ 3 + 8x ^ 2, decimos que esto es O (x ^ 3).)

Las matemáticas se construyen por sí mismas, especialmente cuando se trata de cosas básicas como los registros. Tienes que aprender los fundamentos antes de pasar a temas más complejos.

Mi consejo es tomar cursos de matemáticas en un colegio comunitario. Por lo general, realiza un examen de ubicación para determinar con qué curso comenzar. A continuación, puede avanzar a través del cálculo 3. Ese es solo el comienzo, pero le dará una base sólida.

Después de terminar con todas las matemáticas ofrecidas en un colegio comunitario, recomiendo tomar cursos de matemáticas en una universidad. Eso es lo que estoy haciendo ahora, y realmente lo estoy disfrutando. A pesar de estar cerca de una licenciatura en matemáticas, todavía hay mucho que aprender.

Si te tomas en serio los algoritmos, necesitas al menos una comprensión de las matemáticas a nivel de maestría. Esto requiere más de 6 años de estudio intensivo de principio a fin. Sin embargo, no se desanime, porque si tiene la aptitud, vale la pena (y es agradable).

Al aprender sobre cosas como el registro?

Solo un pensamiento…