С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
45 / 21 / 6
Регистрация: 28.02.2013
Сообщений: 194
1

Длинная арифметика с плавающей точкой

05.10.2015, 15:34. Показов 1264. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть задача перемножить много (десятки тысяч) чисел от 0 до 1.
числа задаются дробями целых чисел. например 28/5489.
Надо получить результат с точностью до 2го знака. То-есть вида 2.45е-567
Факультативно извлечь из него корень степени десятки тысяч. Но это думаю можно простыми иттерациями высчитать приближённо.
Есть ли готовые решения в виде классов на с++ ?

Или если нет с плавающей точкой или дробями хотя б класс для целых чисел.
Чтоб я мог перемножить отдельно числители и знаменатели, а потом сравнить их порядки и поделить несколько старших разрядов.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.10.2015, 15:34
Ответы с готовыми решениями:

Длинная арифметика
Как сделать типы длинных чисел, например, знаковое 256-ти битное целое и 256-ти битное вещественное...

Длинная арифметика
Алгоритмы всех операций в принципе уже готовы (длина числа ограничивается только ресурсами ПК)....

Длинная арифметика))
Программка уже почти готова, единственное неправильно находит остаток при делении По заданию:...

Длинная арифметика
Подскажите, пожалуйста, где ошибки в программе. Еще хотелось бы узнать, правильно ли реализована...

1
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
05.10.2015, 20:57 2
Цитата Сообщение от nefton Посмотреть сообщение
Есть ли готовые решения
Гнутая библиотека mpfr, например.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <gmp.h>
#include <mpfr.h>
 
int main (void)
{
  unsigned i;
  mpfr_t p, t;
  mpfr_init2 (t, 100);
  mpfr_init2 (p, 100);
  mpfr_set_d (p, 1.0, MPFR_RNDD);
  for (i = 0; i < 10000; i++)
  {
    mpfr_set_d (t, (double)(rand() % 10 + 1) / (rand() % 100 + 10), MPFR_RNDD);
    mpfr_mul (p, p, t, MPFR_RNDD);
  }
  printf ("Result is ");
  mpfr_out_str (stdout, 10, 3, p, MPFR_RNDD);
  putchar ('\n');
  mpfr_clear (p);
  mpfr_clear (t);
}
Цитата Сообщение от nefton Посмотреть сообщение
в виде классов на с++
Есть у неё и обертки, коль вам так удобнее. Одна из них - в бусте, вроде бы.
1
05.10.2015, 20:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.10.2015, 20:57
Помогаю со студенческими работами здесь

Длинная арифметика
Здравствуйте, вопрос по поводу задачки, хочу попытаться реализовать решение на плюсах, а не на...

Длинная арифметика
http://www.********/index.asp?main=task&amp;id_task=103 Как решить эту задачу? С помощью чего, и в...

Длинная арифметика
нужен текст програмы на С, в которой был бы реализован алгоритм ввода-вывода длинного числа,...

Длинная арифметика
Ребята,объясните как решить задачу , напишите хоть часть кода. Пусть даны числа a , b . Найти...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru