Вопрос № 148952: Здравствуйте уважаемые эксперты! Помогите пожалуйста в решении следующей задачи: Создать абстрактный тип данных (структура) - вектор, который имеет указатель на double и число элементов. Определить функцию, которая выделяет память для массива и иници...
Вопрос № 148.952
Здравствуйте уважаемые эксперты! Помогите пожалуйста в решении следующей задачи: Создать абстрактный тип данных (структура) - вектор, который имеет указатель на double и число элементов. Определить функцию, которая выделяет память для массива и инициализирует данные. Определить 2 функции, отличающиеся только спецификатором inline, которые получают элемент массива, использовать их при вычислении средне квадратичного отклонения. Освободить память. Сравнить время вычисления.
Отправлен: 30.10.2008, 08:36
Вопрос задал: Sharkerr (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Alexandr A. Rakunov
Здравствуйте, Sharkerr!
немного математики: среднеквадратичное отклонение ( = квадратный корень из дисперсии) в общем случае задается через математическое ожидание, которое требует плотности распределения вероятности по значениям. при равновероятных значениях мат ожидание превращается в среднее арифметическое. будем для простоты считать, что у нас именно такой случай по определнию дисперсия это D[X] = M[(X - M[X])^2], путем преобразований можно получить более удобную дял вычисления: D[X] = M[X^2]
- (M[X])^2 - это и будем вычислять, потом извлечем корень
теперь по коду: компилировалось в MS Visual Studio, если у Вас другая среда разработки - то как посчитать время решайте сами
"функция, которая выделяет память для массива и инициализирует данные." - это конструктор класса Array "Освободить память" - делается, соответственно, в деструкторе.
Число в Array arr(5000000); можете сделать меньше, если комп не очень быстрый.
для относительно честного результата с 2мя значащими цифрами нужно что-бы считало не менее 10 миллисекунд.
Удачи!
По просьбе автора
--------
∙ Отредактировал: Виктор Пырлик, Профессионал
∙ Дата редактирования: 30.10.2008, 17:36 (время московское)
Приложение:
Ответ отправил: Alexandr A. Rakunov (статус: 8-й класс)
Ответ отправлен: 30.10.2008, 12:40
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 148952 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5
Скажите "спасибо" эксперту, который помог Вам!
Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
на короткий номер 1151 (Россия)
Номер ответа и конкретный текст СМС указан внизу каждого ответа.
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.