Форум программистов, компьютерный форум, киберфорум
Наши страницы
Avazart
Войти
Регистрация
Восстановить пароль
Темы блога относятся к программированию на языке С++

В основном для C++Qt (Qt5.1) и C++ Builder (RAD 2009 и RAD XE3)
Рейтинг: 3.14. Голосов: 7.

Использование библиотеки gmp на примере вычисления числа пи

Запись от Avazart размещена 15.06.2012 в 21:13
Обновил(-а) Avazart 18.09.2014 в 19:37
Метки gmp, число пи

Вычисление числа пи с точностью 1000 знаков после запятой с помощью формулы Франсуа Виета с применением библиотеки gmp.

Тестировалось в С++Builder2009

Нажмите на изображение для увеличения
Название: Формула.gif
Просмотров: 421
Размер:	5.4 Кб
ID:	878
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
//---------------------------------------------------------------------------
#include <iostream>
#include <stdio.h>
#include <windows.h>
 
#include "gmp.h"
#pragma comment (lib,"gmp-bcb.lib")
 
using namespace std;
 
int main()
{
   system("chcp 1251");
 
   mpf_set_default_prec(4096);// точность
   int n= 10000;  // кол-во слогаемых
   int k= 1000;  // число выводимых знаков
 
   mpf_t u,p,two,r;
   //  init
   mpf_init(u);  // числитель
   mpf_init(p);  // произведение 
   mpf_init(two);  //число 2
   mpf_init(r);   // результат
   //  set
   mpf_init_set_d(u,0);
   mpf_init_set_d(p,1);
   mpf_init_set_d(two,2);
   mpf_init_set_d(r,0);
   //
   for(int i=0; i<n; i++)
   {
     mpf_add(u,two,u);
     mpf_sqrt(u,u);
     mpf_mul(p,p,u);
     mpf_div(p,p,two);
   }
 
   mpf_div(r,two,p);
   // print
   gmp_printf ("pi= %.*Ff \n",k,r);
 
   // clear
  mpf_clear(u);
  mpf_clear(p);
  mpf_clear(two);
  mpf_clear(r);
 
  system("pause");
  return 0;
}
//---------------------------------------------------------------------------
На скрине показана сверка с информацией из википедии http://ru.wikipedia.org/wiki/Пи

Нажмите на изображение для увеличения
Название: Сверка.gif
Просмотров: 1047
Размер:	66.4 Кб
ID:	879
Вложения
Тип файла: rar gmp Вычисление числа Пи.rar (370.2 Кб, 401 просмотров)
Просмотров 19459 Комментарии 7
Всего комментариев 7
Комментарии
  1. Старый комментарий
    Аватар для Evg
    > с помощью формулы Франсуа Виета

    Я бы в скобках указал, что формула есть на скриншоте

    Так же я бы в удобном виде расписал комментарии во всех местах вычислений типа:

    C
    1
    2
    3
    4
    
     mpf_add(u,two,u);  // u = two + u
     mpf_sqrt(u,u);     // u = sqrt (u)
     mpf_mul(p,p,u);    // p = p * u
     mpf_div(p,p,two);  // p = p / two
    И код модно было бы нормально отформатировать. И добавить пояснение, каким образом библиотеку прикручивать к борландовскому проекту и т.п. Для порядку указать бы ссылку на gmp'шный сайт. Чтобы была нормальная законченная статья и могла реально принести пользу начинающим. А не так чтобы для галочки

    И статью бы назвал что-то типа "Использование библиотеки gmp на примере вычисления числа http://www.cyberforum.ru/cgi-bin/latex.cgi?\pi"
    Запись от Evg размещена 16.06.2012 в 11:17 Evg вне форума
  2. Старый комментарий
    Аватар для Avazart
    Цитата:
    И код модно было бы нормально отформатировать.
    А что тут форматировать код в пару строк
    Цитата:
    И добавить пояснение, каким образом библиотеку прикручивать к борландовскому проекту и т.п.
    Ну это уже отдельная статья...возможно напишу...
    С остальным согласен буду править...
    Запись от Avazart размещена 16.06.2012 в 14:52 Avazart вне форума
  3. Старый комментарий
    Аватар для Evg
    Цитата:
    Сообщение от Avazart Просмотреть комментарий
    А что тут форматировать код в пару строк
    95 человек из 100 внутренности функций пишет с отступом. А ты - нет. Без отступов несколько напрягает смотреть. Просто если ты пишешь для себя - это одно, а если для людей - другое

    И у тебя после ссылки на википедию надо пробел поставить, а то текст слился
    Запись от Evg размещена 16.06.2012 в 16:37 Evg вне форума
  4. Старый комментарий
    Аватар для Avazart
    Цитата:
    95 человек из 100 внутренности функций пишет с отступом. А ты - нет.
    Ну это их проблемы,стиль отступов дело сугубо индивидуальное...
    Меня например напрягает K&R. Но читать нужно уметь любой стиль
    Запись от Avazart размещена 16.06.2012 в 19:15 Avazart вне форума
  5. Старый комментарий
    Аватар для Evg
    Цитата:
    Сообщение от Avazart Просмотреть комментарий
    Ну это их проблемы
    Дык потому и спрашиваю, ты для себя пишешь статью или для людей
    Запись от Evg размещена 17.06.2012 в 00:44 Evg вне форума
  6. Старый комментарий
    Аватар для Avazart
    Так что может соц опрос провести по поводу отступов?
    Запись от Avazart размещена 17.06.2012 в 01:51 Avazart вне форума
  7. Старый комментарий
    Аватар для snake32
    Я за отступы! Хотя конкретно этот код читается мной нормально.
    Запись от snake32 размещена 13.11.2012 в 13:57 snake32 вне форума
    Обновил(-а) snake32 13.11.2012 в 13:59
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru