PDA

Просмотр полной версии : Формула для вычисления суммы результатов работы функции.


PlutDem
29.07.2014, 19:21
Здравствуйте, в цикле выполняется вот такой код:

var x:Number = 90;
var z:Number = 0;
for (var i:Number = 0; i<10; i++){
x /= 2;
z += x;
{


Если нам известно количество итераций можно ли вычислить z математически?

elder_Nosferatu
29.07.2014, 19:30
Это геометрическая пргрессия. Вам нужна формула суммы n первых членов.
Детали: http://ru.wikipedia.org/wiki/Геометрическая_прогрессия

Zebestov
29.07.2014, 19:38
Это геометрическая прогрессия.
Первый элемент равен x, знаменатель прогрессии равен 0.5, сумма первых 10 членов находится по формуле:

var z:Number = (x * (Math.pow(0.5, 10) - 1)) / (0.5 - 1);

nubideus
29.07.2014, 20:20
PlutDem, n = 10, z = x - x * Math.pow(0.5, n) === твой код

Zebestov, выдает 179.82421875, а в коде 89.912109375

Zebestov
29.07.2014, 20:40
Действительно. В моем примере формула приведена правильная, только первый элемент прогрессии равен не 90, а 45. И после некоторого упрощения выглядит точно так же, только без этой вот магии:
(x / 2) / x
Это же просто число 0.5!

nubideus
29.07.2014, 20:50
Это же просто число 0.5!не успел!редактировалось nubideus; Сегодня в 20:38Сегодня, 20:40

Zebestov
29.07.2014, 20:56
Ага ) увидел.