PUERTA | GATE-CS-2014-(Conjunto-1) | Pregunta 51

Considere el siguiente pseudocódigo. ¿Cuál es el número total de multiplicaciones a realizar?

D = 2
for i = 1 to n do
   for j = i to n do
      for k = j + 1 to n do
           D = D * 3

(A) La mitad del producto de los 3 enteros consecutivos.
(B) Un tercio del producto de los 3 enteros consecutivos.
(C) Un sexto del producto de los 3 enteros consecutivos.
(D) Ninguna de las anteriores.

Respuesta: (C)
Explicación: La instrucción “D = D * 3” se ejecuta n*(n+1)*(n-1)/6 veces. Veamos cómo. 
Para i = 1, la instrucción de multiplicación se ejecuta (n-1) + (n-2) + .. 2 + 1 veces. 
Para i = 2, la sentencia se ejecuta (n-2) + (n-3) + .. 2 + 1 veces 
……………………….. 
………………………. 
Para i = n-1, la instrucción se ejecuta una vez. 
Para i = n, la declaración no se ejecuta en absoluto 

Entonces, en general, la declaración se ejecuta después 
de [(n-1) + (n-2) + .. 2 + 1] + [(n-2) + (n-3) + .. 2 + 1] + … + 1 + 0 

La serie anterior se puede escribir como 
S = [n*(n-1)/2 + (n-1)*(n-2)/2 + ….. + 1] 

La suma de la serie anterior se puede obtener restando la serie de la Serie estándar S1 = n2 + (n-1)2 + .. 12. La suma de esta serie estándar es n*(n+1)*(2n+ 1)/6 

S1 – 2S = n + (n-1) + … 1 = n*(n+1)/2 
2S = n*(n+1)*(2n+1)/6 – n*(n+1)/ 2 
S = n*(n+1)*(n-1)/6

La solución anterior se basa en un truco para obtener la suma de la serie, pero hay una forma mucho más sencilla de obtener el mismo resultado:

Para i = 1, la instrucción de multiplicación se ejecuta (n-1) + (n-2) + .. 2 + 1 veces.

Para i = 2, la instrucción se ejecuta (n-2) + (n-3) + .. 2 + 1 veces 

Por tanto, para cada i, el número de veces que se ejecuta la sentencia es: 

\sum_{k=1}^{n-i}k

Esta es la suma de n números naturales de 1 a n – i. Por lo tanto, se puede simplificar a:

\frac{(n -i) \times (n - i + 1)}{2}

Multiplicando obtendremos lo siguiente:

\frac{n^{2}-2ni + n + i^{2} - i}{2}

Ahora, esta es la cantidad de veces que se ejecutará la declaración para cada i. Por tanto, en total, el número de veces que se ejecutará la sentencia es:

\frac{1}{2}\sum_{i = 1}^{n}\left ( n^{2}-2ni + n + i^{2} - i \right )

Ignora la mitad por el momento. Expandir la suma es simple. Puede distribuirlo a través de la expresión para obtener esto:

n^{2}\sum 1 - 2n\sum i + n\sum 1 + \sum i^{2} - \sum i

Usando las fórmulas para la suma de n números naturales y la suma de cuadrados de n números naturales, obtenemos:

n^{3} - 2n \times \frac{n \times (n + 1)}{2} + n^{2} + \frac{n \times (n + 1) \times (2n + 1)}{6} - \frac{n \times (n + 1)}{2}

Simplificando aún más y tomando n/6 como término común obtendrá:

\frac{n}{6}\left ( 2n^{2} - 2 \right )

Ahora, toma 2 como el término común y úsalo para cancelar la mitad que ignoramos antes. Esto te da:

\frac{n}{6}\left ( n^{2} - 1 \right )

Finalmente, usando a 2 -b 2 , obtienes la respuesta requerida:

\frac{n}{6}\left ( n - 1 \right )\left ( n + 1 \right )

¡Esto debería aclararle la solución ahora!

Cuestionario de esta pregunta

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *