Помогите решить задачу!
Помогите или хотя бы подскажите возможно ли реализовать на javascript решение следующей задачи?
Суть задачи: а1 = 100; a2 = a1 * 1.3 + 300 * (2-1); an = a(n-1) * 1.3 + 300 * (n-1); Как посчитать n-й член? в MS Excel я сделал, а на javascript знаний не хватает... |
Vor_tex,
<script>
function a(n,x,k)
{
x = x * 1.3 + 300 * ++k;
n--;
return n <= 1 ? x : a(n,x,k)
} ;
for (var i=2; i<10; i++) {document.write(i + " = " +a(i,100,0 )+ "<br>")}
</script>
|
рони, спасибо огромное.
|
рони, я извиняюсь за наглость, а не подскажите как вывести первый член, чтобы он равнялся 100, а то он равен второму!
И еще бы подскажите как вы вести сумму всех предыдущих членов на заданном промежутке, а то у меня не то что нужно показывает...
<script>
function a(n,x,k)
{
x += x * 1.3 + 300 * ++k;
n--;
return n <= 1 ? x : a(n,x,k)
} ;
for (var i=10; i<=10; i++) {document.write(i + " = " +a(i,100,0 )+ "<br>")}
</script>
|
Vor_tex,
<script>
function a(n,x)
{
for (var i = 0; i< n; ){
x = x * 1.3 + 300 * ++i;
}
return x
} ;
for (var i=0; i<10; i++) {document.write(i + " = " +a(i,100)+ "<br>")}
</script>
|
Vor_tex,
<script>
function a(n,x)
{
var sum = x;
for (var i = 0; i < n; ){
x = x * 1.3 + 300 * ++i;
sum += x
}
return [n,x,sum]
} ;
for (var i=0; i<10; i++) {document.write(a(i,100).join(" ")+ "<br>")}
</script>
|
рони,
Так я и не понял зачем считать одни и те же значения по 10-20-30 раз. По-моему через эту штуку https://github.com/medikoo/memoizee/...ster/README.md код будет производительнее раз в 100 :) |
destus,
за ссылку конечно спасибо, но что там мне не понять, и Цитата:
|
Цитата:
|
рони,
Идея в том, что раз nый член считается по n-1ому, то эти значения можно закешировать и не считать заного. А так в твоем коде 6 строка выполняется много раз, причем считает одни и те же значения для a(1, 100) a(2, 100) и тд |
| Часовой пояс GMT +3, время: 15:30. |