Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Coyote112358
0 / 0 / 2
Регистрация: 17.11.2009
Сообщений: 22
#1

Одномерный массив в MPIR (длинная арифметика) - C++

31.12.2011, 00:01. Просмотров 905. Ответов 4
Метки нет (Все метки)

Не получается записать длинные числа в массив
Есть таблица значений функции
1 4
2 32
3 344
4 4460
5 66532
6 1118398
7 20984924
8 437500380
9 10105541204
10 257860425672
11 7241521734020
12 222770819826574
13 7466859257161488
14 271156951835070930
15 10609740515840572076
16 444982726973034212924
17 19911203110764903275188
18 946564783226311159219150
19 47631429404674467307773380
20 2528751817754976349706118326
21 141230550945276570635100088392
22 8276355199785795726294608142184
23 507729501918803287606319351173352
24 32538850685220441627440374250456290
25 2174335830863749936724371980412536172
26 151236326399950056297298993112649900850
27 10932105410468612099036188735215153271496
28 820044457045734108109109406561277222219168
29 63748873475180955339832071132429388775557556
30 5129407130436863270233731521113990193730440354
31 426694523629297006422022284190667711775649380560
и надо правый столбец записать в одномерный массив типа mpz

что-то ничего в документации не пойму
как это можно сделать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.12.2011, 00:01
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Одномерный массив в MPIR (длинная арифметика) (C++):

Длинная арифметика: при выполнении операции A-B, массив A портится
class BigInt { static const int max_size = 100000;//количество...

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

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

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

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

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

4
alkagolik
Заблокирован
31.12.2011, 01:02 #2
и? непонятно что такое mpz_init()? или что? Для чего нужна MPIR? GMP не хватает? мало информации.
0
Coyote112358
0 / 0 / 2
Регистрация: 17.11.2009
Сообщений: 22
31.12.2011, 03:26  [ТС] #3
mpir потому что пишу в msvs
синтаксис и функционал gmp вроде те же

не понятно что вобще надо делать
как создать массив понятно
а записать в него эти числа не пойму - длиннее 10 цифр не принимает почему то

Добавлено через 40 минут
вот как я делаю
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
#include "stdafx.h"
#include "iostream"
#include "mpirxx.h"
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    mpz_t Array[31];
    mpz_array_init(Array[0], 31, 1024);
 
    mpz_set_str(Array[0], "4", 10);
    mpz_set_str(Array[1], "32", 10);
    mpz_set_str(Array[2], "344", 10);
    mpz_set_str(Array[3], "4460", 10);
    mpz_set_str(Array[4], "66532", 10);
    mpz_set_str(Array[5], "1118398", 10);
    mpz_set_str(Array[6], "20984924", 10);
    mpz_set_str(Array[7], "437500380", 10);
    mpz_set_str(Array[8], "10105541204", 10);
    mpz_set_str(Array[9], "257860425672", 10);
    mpz_set_str(Array[10], "7241521734020", 10);
    mpz_set_str(Array[11], "222770819826574", 10);
    mpz_set_str(Array[12], "7466859257161488", 10);
    mpz_set_str(Array[13], "271156951835070930", 10);
    mpz_set_str(Array[14], "10609740515840572076", 10);
    mpz_set_str(Array[15], "444982726973034212924", 10);
    mpz_set_str(Array[16], "19911203110764903275188", 10);
    mpz_set_str(Array[17], "946564783226311159219150", 10);
    mpz_set_str(Array[18], "47631429404674467307773380", 10);
    mpz_set_str(Array[19], "2528751817754976349706118326", 10);
    mpz_set_str(Array[20], "141230550945276570635100088392", 10);
    mpz_set_str(Array[21], "8276355199785795726294608142184", 10);
    mpz_set_str(Array[22], "507729501918803287606319351173352", 10);
    mpz_set_str(Array[23], "32538850685220441627440374250456290", 10);
    mpz_set_str(Array[24], "2174335830863749936724371980412536172", 10);
    mpz_set_str(Array[25], "151236326399950056297298993112649900850", 10);
    mpz_set_str(Array[26], "10932105410468612099036188735215153271496", 10);
    mpz_set_str(Array[27], "820044457045734108109109406561277222219168", 10);
    mpz_set_str(Array[28], "63748873475180955339832071132429388775557556", 10);
    mpz_set_str(Array[29], "5129407130436863270233731521113990193730440354", 10);
    mpz_set_str(Array[30], "426694523629297006422022284190667711775649380560", 10);
 
 
    for (int i=0; i<31; i++)
    {
        cout << Array[i] << endl;
    }
    system("pause");
    return 0;
}
а можно ли как-нибудь скопировать числа из строкового массива в mpz в цикле ?

Добавлено через 2 минуты
и еще очень интересно — как переводить mpz из одной системы счисления в другую ?
0
alkagolik
Заблокирован
31.12.2011, 13:41 #4
Цитата Сообщение от Coyote112358 Посмотреть сообщение
mpir потому что пишу в msvs
убил
вот это чепуха.
Цитата Сообщение от Coyote112358 Посмотреть сообщение
C
1
2
3
for (int i = 0; i < 31; i ++ ) {
    cout << Array[i] << endl;
}
i\o в библиотеках реализованы как самостоятельные функции. Читайте документацию, там кстати и форматы вывода есть.
Цитата Сообщение от Coyote112358 Посмотреть сообщение
а можно ли как-нибудь скопировать числа из строкового массива в mpz в цикле ?
да,
C
1
2
3
4
char **strarray;
...
while ( i < size )
    mpz_set_str(Array[i], strarray[ i ] , ...);
0
Coyote112358
0 / 0 / 2
Регистрация: 17.11.2009
Сообщений: 22
31.12.2011, 15:39  [ТС] #5
а как мне эти числа переводить в другие системы счисления
0
31.12.2011, 15:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.12.2011, 15:39
Привет! Вот еще темы с решениями:

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

Длинная арифметика
:senor: Здраствуйте, пишу модуль длинной математики. В принципе,...

Длинная арифметика
Вот условие задачи: Во время исследований, посвященных появлению жизни на...

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru