Logo Studenta

¿Los programadores con un fondo matemático tienden a programar de una manera diferente?

💡 1 Respuesta

User badge image

Todos los Apuntes

Un ejemplo muy concreto. Imagina que tienes 10 millones de nodos, y que estos nodos están todos conectados entre sí. La pregunta es, ¿cuántas conexiones hay en total?

De inmediato nos damos cuenta de que el primer nodo se conecta con los restantes 9,999,999 nodos, el segundo se conecta con el primero y con los restantes 9,999,998, el tercero se conecta con el primero, con el segundo, y con los restantes 9,999,997.

Entonces, ¿cuántas conexiones hay en total? Pues habrá que realizar la siguiente suma:

9999999+9999998+9999997+...+3+2+19999999+9999998+9999997+...+3+2+1

Un programador sin fondo matemático probablemente lo resolvería así:

  1. conexiones = 0 
  2. for(i=9999999;i>0;i--) 
  3. conexiones = conexiones + i 
  4. print conexiones 

Llegando así a la respuesta correcta, que es 4999999500000.

Sin embargo, este procedimiento es muy poco eficiente, ya que tuve que repetir un ciclo 10 millones de veces.

En cambio, un programador con fondo matemático probablemente aplique el siguiente razonamiento:

9999999+9999998+9999997+...+3+2+1=9999999+9999998+9999997+...+3+2+1=

(9999999+1)+(9999998+2)+(9999997+3)+...(9999999+1)+(9999998+2)+(9999997+3)+...5 millones de veces

=99999995000000=4999999500000=9999999∗5000000=4999999500000

Y no sólo eso, en general, la suma de los primeros “n” números naturales resulta ser:

Σnk=1k=n(n+1)2Σk=1nk=n(n+1)2

Esto tiene la ventaja de que es mucho más eficiente, ya que sólo realizaste una operación matemática sencilla, en vez de un ciclo de 10 millones de veces.

0
Dislike0

✏️ Responder

FlechasNegritoItálicoSubrayadaTachadoCitaCódigoLista numeradaLista con viñetasSuscritoSobreDisminuir la sangríaAumentar la sangríaColor de fuenteColor de fondoAlineaciónLimpiarInsertar el linkImagenFórmula

Para escribir su respuesta aquí, Ingresar o Crear una cuenta

User badge image

Otros materiales