Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2012, 17:10   #1
Evgeshka-cool
Новичок
Джуниор
 
Регистрация: 27.05.2012
Сообщений: 3
По умолчанию Подсчет числа ПИ на C++

Ниже приведен «плохой» код.

Код:
lоng N = 10000000; 
double dx, sum, x; 
sum = 0.0; 
x = 0.0; 
dx = 1.0 / (double) N; 
for (lоng i = 0; i < N; i++){ 
sum += 4.0 / (1.0 + x * x); 
x += dx; 
} 
double pi = dx * sum;
Помогите оптимизировать как в этой статье: http://habrahabr.ru/post/124910/

Можно просто идеи по оптимизации этого кода.

Последний раз редактировалось Stilet; 27.05.2012 в 19:56.
Evgeshka-cool вне форума Ответить с цитированием
Старый 27.05.2012, 18:10   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Чем же он плох?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.05.2012, 18:19   #3
Evgeshka-cool
Новичок
Джуниор
 
Регистрация: 27.05.2012
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Чем же он плох?
Ну с точки зрения быстроты выполнения... Цикл выполняется 10000000 раз, одной разверткой цикла можно добиться сокращения итераций как минимум в 10 раз меньше. Ну есть и другие методы оптимизации, мне бы для начала развертку правильную сделать, чтоб снизить время выполнения)

Не скажу что он плох, но есть возможность оптимизации!
Evgeshka-cool вне форума Ответить с цитированием
Старый 27.05.2012, 18:42   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Какой смысл ставить такое огромное число, если ты не используешь длинную арифметику? Ты хочешь получить все знаки ПИ? Или просто рядом вычислить его приблизительно?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.05.2012, 18:54   #5
Evgeshka-cool
Новичок
Джуниор
 
Регистрация: 27.05.2012
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Какой смысл ставить такое огромное число, если ты не используешь длинную арифметику? Ты хочешь получить все знаки ПИ? Или просто рядом вычислить его приблизительно?
Тут задача стоит не в подсчете числа ПИ, а в загрузке процессора. Мне нужно загрузить процессор, посчитать время выполнения кода, а потом этот код оптимизировать на 18 процентов. Подсчет числа ПИ достаточно долгий процесс и выходит чем больше знаков, тем мне лучше для подсчетов. Но нужно еще оптимизировать, для этого я и хочу развернуть этот цикл или выполнить какую-либо другую операцию...

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

Последний раз редактировалось Evgeshka-cool; 27.05.2012 в 18:57.
Evgeshka-cool вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подсчет числа компонент связности С++ Li*zA Помощь студентам 3 20.04.2011 05:41
Подсчет числа слов Heatrv Microsoft Office Word 3 30.09.2010 11:31
Подсчет числа одинаковых слов в нескольких категориях. Hagen83 Microsoft Office Excel 2 13.03.2010 09:45
подсчет методами php числа файлов в директории wlad115 PHP 2 25.01.2010 22:10
Подсчет числа переходов между 0 и 1 Sonyalex90 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 24.10.2009 21:20