![]() |
|
||||||||||
|
|||||
|
Кто ни-ть делал в AS3 FORECAST ф-цию как в EXEL? Щас оч срочно нужно а времени самому разбирать нету. Мож кто где встречал или делал?
__________________
Правильный вопрос, это половина ответа. |
|
|||||
|
А что функция делает?
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Прогнозирует результат на основе предварительных данных.
__________________
Правильный вопрос, это половина ответа. |
|
|||||
|
А как прогнозирует?
Скорее всего это придётся писать (почти) с нуля.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Нет не сложно просто сроки поджимают. Думал может у кого есть. Кстати уже начал писать..
__________________
Правильный вопрос, это половина ответа. |
|
|||||
|
блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
|
Ну вот вродь формулы http://en.wikipedia.org/wiki/Numeric...es#Computation с ними моск не задействуется, за время от начала топега можно было написать вродь)
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают. |
|
|||||
|
Да, спасибо! Тут http://office.microsoft.com/ru-ru/ex...6.aspx?redir=0 конкретно по модели вычислений.
Добавлено через 1 час 27 минут Тему открыл значит и закрою. Может кому потом будет интересно. Вот собсно код. Для ленивых Ctrl+C Ctrl+V в новый чистый Timeline /* * Legend * y = a + b * x; * where a = y_average - b * x_average; * also b = SUMM((x - x_average) * (y - y_average)) / SUMM(pow(x - x_average, 2)); */ // these two arrays only for testing You have to substitute to yours own data var y_arr :Array = new Array(6, 7, 9, 15, 21); var x_arr :Array = new Array(20, 28, 31, 38, 40); function forecast(x_point :Number, y_arr :Array, x_arr :Array) :Number { if(x_arr.length != y_arr.length) throw new Error("The x_arr and y_arr arrays have to have the same lenght"); var a :Number; var b :Number; // found x_average and y_average var x_avr :Number = 0; var y_avr :Number = 0; for(var i :int = 0; i < x_arr.length; i++) { x_avr += x_arr[i]; y_avr += y_arr[i]; } x_avr /= x_arr.length; y_avr /= y_arr.length; // found b var summ_numerator :Number = 0; var summ_denominator :Number = 0; for(var n :Number = 0; n < x_arr.length; n++) { summ_numerator += (x_arr[n] - x_avr) * (y_arr[n] - y_avr); summ_denominator += Math.pow(x_arr[n] - x_avr, 2); } b = summ_numerator / summ_denominator; // found a a = y_avr - b * x_avr; return a + b * x_point; } trace("Here is the result :) -> " + forecast(30, y_arr, x_arr));
__________________
Правильный вопрос, это половина ответа. Последний раз редактировалось Yuorik; 26.08.2010 в 18:20. |
![]() |
![]() |
Часовой пояс GMT +4, время: 20:27. |
|
|
« Предыдущая тема | Следующая тема » |
|
|