Форум программистов, компьютерный форум CyberForum.ru

Математическое ожидание, дисперсия - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Дана строка символов... http://www.cyberforum.ru/cpp-beginners/thread320055.html
Помогите пожалуйста решить задачку на C++ Дана строка символов. Заменить в строке сочетание символов "ты" на "вы". Заранее спасибо)
C++ Как вы считаете книга по С++ нормальная Б. Страуструп - "Программирование: принципы и практика использования C++ http://www.cyberforum.ru/cpp-beginners/thread320046.html
C++ Даны числа x, y, x1, y1, x2, y2. Проверить истинность высказывания: «Точка с координатами (x, y) лежит внутри прямоугольника, левая верхняя вершина ко
Даны числа x, y, x1, y1, x2, y2. Проверить истинность высказывания: «Точка с координатами (x, y) лежит внутри прямоугольника, левая верхняя вершина которого имеет координаты (x1, y1), правая нижняя — (x2, y2), а стороны параллельны координатным осям».
Проверить истинность высказывания: «Среди трех данных целых чисел есть хотя бы одна пара совпадающих». C++
Проверить истинность высказывания: «Среди трех данных целых чисел есть хотя бы одна пара совпадающих».
C++ Реализовать односвязный список данных вида "Страна, город, количество населения" http://www.cyberforum.ru/cpp-beginners/thread320031.html
Поставлена задача реализовать односвязный список данных вида Страна город количество населения Обеспечить выполнение операций: добавление элемента в список удаление элемента из списка разделение списка на два по признаку: Страна, которая имеет города числом жителей >=k, <k подсчет числа всех жителей списка распечатка списка (поток вывода уточняю, скорее всего вывод на принтер) ...
C++ Раскраска графа в два цвета (алгоритм BlackWhiteColoring) Здраствуйте! Хотела попросить помочь с программой. Дан неориентированный граф, его раскраска производится следующим образом: приписываем его вершинам цвета таким образом, что никакие две смежные вершины не получаются одинакового цвета. Необходимо каким-нибудь простым перебором вывести для каждой черной вершины максимальное количество белых. Т.е. получится массив, где с одной стороны будет просто... подробнее

Показать сообщение отдельно
grizlik78
Эксперт С++
1908 / 1440 / 110
Регистрация: 29.05.2011
Сообщений: 2,995
16.06.2011, 02:47     Математическое ожидание, дисперсия
А я не поленился и вынес в своём варианте умножение из функции.
на 100 миллионах (компиляция с ключом -O2) время оказалось сравнимым. 3,70 c до, 3,75 c после.
Убрал условия и параметры (что сделало модель менее универсальной), получил 3,66 c.
Не слишком заметный выигрыш, чтобы ради него делать менее (для меня) понятной и менее универсальной. Тем более, что это всё в пределах погрешности.

Переход к drand48() дал время 4,50 с. Может генератор и получился более качественным (не сравнивал, хоть и сомнительно), но явно не более быстрым. Я бы предпочёл тогда уж Вихрь Мерсенна или ещё какой более интересный генератор.

Лишь замена обмена значений модулем дала заметный (и несколько неожиданный для меня) эффект: 2.80 c. Но и в первоначальной версии эффект тот же (даже чуть лучше). В который раз убеждаюсь, что пути компилятора неисповедимы

Возможно в C++ дело бы обстояло и по-другому, но пока проверять лень

P.S. Переделывая сначала получал неверный результат, так как неправильно делал пересчёт МО и дисперсии. В исходном варианте места для этих ошибок не нашлось. Так что для меня в нормализации (в этой конкретной задаче) одни минусы.

Добавлено через 6 минут
Ах, да. Замечу ещё, что на самом деле различия могли оказаться ещё меньше, если бы я честно выделял память под все 100000000 значений, что необходимо для оценки дисперсии. У меня был массив на 10 тыс. элементов, что, разумеется, дало дисперсию лишь по этим 10 тысячам.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru