Помогите решить задачу!
Помогите или хотя бы подскажите возможно ли реализовать на 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, время: 04:59. |