Descubrí una ecuación para encontrar dígitos de pi, y parece funcionar bien con el ciclo for, pero me preguntaba si había alguna forma de reducir las 12 variables. El objetivo de ellos es aumentar la precisión de la aproximación, pero hay muchos de ellos. Necesito una forma de tener la funcionalidad de las doce variables, pero escrita con menos código.
Aquí está el código completo:
function approximatePi() { //Get P element var t = document.getElementById("t") //For loop for (let i = 0; i < 1000; i++) { //Variable for number close to pi// var a = 3.14 //Math var a2 = a + Math.sin(a) var a3 = a2 + Math.sin(a2) var a4 = a3 + Math.sin(a3) var a5 = a4 + Math.sin(a4) var a6 = a5 + Math.sin(a5) var a7 = a6 + Math.sin(a6) var a8 = a7 + Math.sin(a7) var a9 = a8 + Math.sin(a8) var a10 = a9 + Math.sin(a9) var a11 = a10 + Math.sin(a10) var a12 = a11 + Math.sin(a11) var a13 = a12 + Math.sin(a12) var a14 = a13 + Math.sin(a13) var a15 = a14 + Math.sin(a14) t.innerText = parseFloat(a12).toPrecision(50) } }Está repitiendo la misma operación varias veces e imprimiendo el resultado después de 12 pasos. Eso se puede simplificar con un bucle:
function approximatePi() { //Get P element var t = document.getElementById("t") //For loop for (let i = 0; i < 1000; i++) { //Variable for number close to pi// var a = 3.14 //Math for (let j = 0; j < 12; ++j) a = a + Math.sin(a); t.innerText = parseFloat(a).toPrecision(50) } }Si necesita todos los resultados, use una matriz:
function approximatePi() { //Get P element var t = document.getElementById("t") //For loop for (let i = 0; i < 1000; i++) { //Variable for number close to pi// var a = [3.14] //Math for (let j = 1; j <= 12; ++j) a[j] = a[j-1] + Math.sin(a[i-1]); t.innerText = parseFloat(a[12]).toPrecision(50) } }Esto podría funcionar. Aunque, no estoy 100 por ciento seguro de lo que pide la pregunta. Podrías escribir la pregunta.
function approximatePi(){ var t = document.getElementById("t"); var a =[]; a[0] = 3.14; for(var i = 1; i<1000; i++){ a[i] = a[i-1] + Math.sin(a[i-1]); } console.log(a[1]); } approximatePi();