Buen día, cómo andan?
Se me trabó el cerebro, no entiendo porque “multiply(arr, n) == multiply(arr, n - 1) * arr[n - 1]”. Es una propiedad matemática que no conozco?
Me quedé trabado porque el enunciado dice “SIN EMBARGO, NOTA QUE multiply(arr, n) == multiply(arr, n - 1) * arr[n - 1]” y la verdad que yo no noto con facilidad esa igualdad, después de hacer la prueba veo que si, es igual, pero cómo se llega a esa conclusión así de fácil? no entiendo, no lo noto.
Es como que diga "Sin embargo, nota que 4 = 2 * 2, y si, lo puedo notar facilmente, pero esta igualdad del anunciado no la noto para nada facilmente jjajjaja
Bueno, desde ya, muchas gracias por su ayuda.
Saludos
Información de tu navegador:
El agente de usuario es: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36 Edg/112.0.1722.58
¡Buen día!
La expresión es verdad, y sabemos esto porque podemos ejecutarlo y conseguir una resulta verdad, pero ¡NO evidente!
Entiendíamos soló si nos, con diligencía, hemos examinado el código y lo que es haciendo.
Entonces, tenemos que razoníamos y realizamos una propiedad del código (y matemática) que es relativamente oscura: Cuando multiplica más que dos números, está, efectivamente, multiplicando cada número por la resulta de la multiplicación de todo el resto.
Como dije, es una propiedad muy oscura, y no evidente, así que es entendible que no entenderia inmediatamente.
Perdón mi Español, no hablo con fluidez, pero estoy aprendiendo. Si notica cualquieros errores, ¡dice me, por favor!
Y queremos multiplicar los primeros 3 elementos del array, podemos llamar a la función de la siguiente manera:
let result = multiply(arr, 3);
console.log(result); // Output: 24
En la primera llamada recursiva, se llamará a la función “multiply” con los argumentos (arr, n - 1) “arr” y “2”, y se multiplicará el resultado de la llamada recursiva por el elemento del array en la posición (arr[n - 1]) 2-1", que es 4. 2x4=8
En la segunda llamada recursiva, se llamará a la función “multiply” con los argumentos (arr, n - 1) “arr” y “1”, y se multiplicará el resultado de la llamada recursiva por el elemento del array en la posición (arr[n - 1])“1-1”, que es 3. 8x3=24
En la tercera llamada recursiva, se llamará a la función “multiply” con los argumentos “arr” y “0”, y como “n” es menor o igual a cero, la función devolverá 1. 24x1=24
Finalmente, se multiplicarán los resultados de las tres llamadas recursivas, que son 4, 3 y 1, respectivamente, lo que dará como resultado 24.
En la primera llamada (arr,3-1=arr,2) y se multiplica por el elemento array en la posicion (arr[2-1])(x no (arr[3-1]x) por que primero se ejecuta lo que esta en los parentesis)asi que su posicion es 4, por que en JavaScript (al igual que en muchos otros lenguajes de programación), los índices de los arrays comienzan en cero.