#javascript #math #series
Вопрос:
Хотите вычислить следующий ряд в JavaScript:
В частности, код будет использоваться для проверки RHS. Дело в том, чтобы исследовать поведение ряда с увеличением числа членов в выражении.
Следующий JS — это начало:
var res = 0;
for(var i=0; i < 1000; i ) {
res = Math.sqrt(1 ???)
}
… но я не уверен, как непрерывно извлекать корень из корня корня …. в JS?
Программный способ достижения:
Math.sqrt(1 Math.sqrt(1 Math.sqrt(1 Math.sqrt(1 ....))))
для произвольного числа корней.
Я думал о чем-то вроде этого:
var res = [];
for(var i=1; i <= 1000; i ) {
if(res.length > 0) {
res.push(Math.sqrt(1 res[i - 1]))
} else {
res.push(Math.sqrt(1 0))
}
}
Обновить
Ответ @Slevin с использованием рекурсии сработал. Мне пришлось немного скорректировать его, чтобы зафиксировать каждое значение в массиве. Вот версия массива:
res= [];
function getRoots(number) {
if (number === 1) {
var res_1 = Math.sqrt(1);
res.push(res_1)
return(res_1)
} else {
var res_2 = Math.sqrt(1 getRoots(number - 1));
res.push(res_2);
return(res_2)
}
};
getRoots(1000)
Ответ №1:
Я не совсем уверен, но может ли это быть вашим решением?:
function getRoots(number) {
if (number === 1) return Math.sqrt(1);
return Math.sqrt(1 getRoots(number - 1));
}
let result = getRoots(1000);
console.log(result);
Здесь рекурсия используется для получения вашего результата. Функция вызывает себя до тех пор, пока не будет выполнено 1000 раз.
Здесь обновленная версия с современным JS (const вместо var для объявления массива) и использованием однострочных строк для обновления массива и возврата значения:
const results = [];
const getRoots = number => {
if (number === 1) return results[results.push(Math.sqrt(1)) - 1];
return results[results.push(Math.sqrt(1 getRoots(number - 1))) - 1];
};
getRoots(1000);
for (let res of results)
console.log(res);
К вашему сведению: Array.prototype.push() возвращает новую длину массива, поэтому мы используем это значение для возврата перенесенного вычисления.
Комментарии:
1. Потому что код используется для проверки RHS. Дело в том, чтобы исследовать поведение ряда с увеличением числа членов в выражении.
2. Обновлено рекурсивной функцией, которая должна выполнить эту работу 🙂
3. Функции рекурсии кажутся правильными, однако мне нужны отдельные термины, возвращаемые в массиве. Я пытаюсь протолкнуть каждый результат рекурсии с помощью вашей функции.
4. Понял. Да, это работает. Я добавил версию массива в свой вопрос в качестве обновления. Спасибо.