Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подскажите, как обращаться с большими числами 
V
    Опции темы
Splendid
Дата 13.6.2008, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 256
Регистрация: 1.8.2007
Где: Беларусь, Минск

Репутация: нет
Всего: нет



Если не сложно - помогите, пожалуйста....Нужно переписать этот код
Код

#include <iostream>
using namespace std;
//Алгоритм Евклида (для нахождения НОД)

int Evcl(int a, int b) {
  int c;
  while (b) {
     c = a % b;
     a = b;
     b = c;        
  }
 return abs(a);
}

int main()
{
    
    cout << "Enter any number -> ";
     long a;
    cin >> a;
        cout << "Enter any number -> ";
     long b;
    cin >> b;
    cout << (Evcl(a, b)) << endl;
    
    cin.get();
    cin.get();

    return 0;
}




для больших чисел с использованием следующей библиотеки:
Код





Тыкаюсь, как слепой котенок и не знаю, что с этим делать...ПОМОГИТЕ, пожалуйста!!!!! 

Это сообщение отредактировал(а) Splendid - 20.6.2008, 11:49
PM MAIL   Вверх
andrew_121
Дата 13.6.2008, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 6
Всего: 33



Splendid - Ты про класс complex слышал?
Ну вот, погугли.

И еще момент... А для чего такие числа применяються??? Разве double не хватает, 64 бита.
Или long double - 100 бит.

Возьми класс complex, замени его типы на long double и будет у тебя класс 200 битного числа.

А на* такие числа?

Это сообщение отредактировал(а) andrew_121 - 13.6.2008, 14:37


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
Splendid
Дата 13.6.2008, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 256
Регистрация: 1.8.2007
Где: Беларусь, Минск

Репутация: нет
Всего: нет



Погуглила, там все ссылки на английском, а я, к сожалению его не знаю....по идее, там все просто должно быть, написано ведь все, только я туплю....
PM MAIL   Вверх
andrew_121
Дата 13.6.2008, 14:39 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 6
Всего: 33



Цитата(Splendid @ 13.6.2008,  14:35)
Погуглила, там все ссылки на английском, а я, к сожалению его не знаю....по идее, там все просто должно быть, написано ведь все, только я туплю....

Ой...простите...Вы Мадам... smile 


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
Splendid
Дата 13.6.2008, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 256
Регистрация: 1.8.2007
Где: Беларусь, Минск

Репутация: нет
Всего: нет



andrew_121, ага, может тогда снизойдете и поможете? smile  smile

Добавлено через 1 минуту и 28 секунд
Числа нужны для реализации алгоритма проверки простоты числа для криптографических нужд, поэтому нужны очень большие числа...
PM MAIL   Вверх
andrew_121
Дата 13.6.2008, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 6
Всего: 33



Цитата(Splendid @  13.6.2008,  14:41 Найти цитируемый пост)
нужны очень большие числа

Сколько бит?


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
Splendid
Дата 13.6.2008, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 256
Регистрация: 1.8.2007
Где: Беларусь, Минск

Репутация: нет
Всего: нет



до 32768

Добавлено через 1 минуту и 26 секунд
чт. можно было представить любое целое число в диапазоне от -(2 в степ.32768)-1 до (2 в степ 32768) -1
PM MAIL   Вверх
andrew_121
Дата 13.6.2008, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 6
Всего: 33



Цитата(Splendid @  13.6.2008,  15:18 Найти цитируемый пост)
в диапазоне от -(2 в степ.32768)-1 до (2 в степ 32768) -1

Гм... А сколько это бит? Мне нужно знать!

Это сообщение отредактировал(а) andrew_121 - 13.6.2008, 15:23


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
Splendid
Дата 13.6.2008, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 256
Регистрация: 1.8.2007
Где: Беларусь, Минск

Репутация: нет
Всего: нет



до 32768 бит
PM MAIL   Вверх
andrew_121
Дата 13.6.2008, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 6
Всего: 33



Так это 1024 32-ух битных.
Щас...

Добавлено @ 15:34
Код

  int c;
  while (b) {
     c = a % b;
     a = b;
     b = c; // для чего b присваивать значение, если нон больше не используеться???
  }
 return abs(a);
}


Это сообщение отредактировал(а) andrew_121 - 13.6.2008, 15:39


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
Splendid
Дата 13.6.2008, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 256
Регистрация: 1.8.2007
Где: Беларусь, Минск

Репутация: нет
Всего: нет



это алгоритм Евклида такой - не я его придумалаsmile

ну вот я пытаюсь писать, но выдает ошибки:
Код



--------------------Configuration: big - Win32 Debug--------------------
Linking...
big.obj : error LNK2001: unresolved external symbol "long __cdecl big_GCD(struct big_number,struct big_number,struct big_number *)" (?big_GCD@@YAJUbig_number@@0PAU1@@Z)
big.obj : error LNK2001: unresolved external symbol "long __cdecl big_input(void const *,long,long,struct big_number *)" (?big_input@@YAJPBXJJPAUbig_number@@@Z)
Debug/big.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.

big.exe - 3 error(s), 0 warning(s)


Это сообщение отредактировал(а) Splendid - 20.6.2008, 11:50
PM MAIL   Вверх
andrew_121
Дата 13.6.2008, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 6
Всего: 33



unresolved external - Означает, что компилер не видит реализацию функции.
А вот этот файлик добавьте к проекту. Но не через #include
Код

//#include "big_number.cpp"


Добавлено через 4 минуты и 42 секунды
Цитата(Splendid @  13.6.2008,  15:42 Найти цитируемый пост)
это алгоритм Евклида такой - не я его придумала

Жаль, у вас бы получилось лучше. )))

Это сообщение отредактировал(а) andrew_121 - 13.6.2008, 15:53


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
Splendid
Дата 13.6.2008, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 256
Регистрация: 1.8.2007
Где: Беларусь, Минск

Репутация: нет
Всего: нет



о, тогда компилится, но выдает окошко - 

big.exe - обнаружена ошибка. Приложение будет закрыто. Приносим извинения за неудобства.

Добавлено через 3 минуты и 23 секунды
Цитата(andrew_121 @  13.6.2008,  15:50 Найти цитируемый пост)
Но не через #include

 а как?
PM MAIL   Вверх
andrew_121
Дата 13.6.2008, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 6
Всего: 33



Цитата(Splendid @ 13.6.2008,  15:56)
о, тогда компилится, но выдает окошко - 

big.exe - обнаружена ошибка. Приложение будет закрыто. Приносим извинения за неудобства.

Ошибка при доступе к памяти. Бывает.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
Splendid
Дата 13.6.2008, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 256
Регистрация: 1.8.2007
Где: Беларусь, Минск

Репутация: нет
Всего: нет



Цитата(andrew_121 @  13.6.2008,  15:50 Найти цитируемый пост)
Жаль, у вас бы получилось лучше. )))


О да!!!!smile))))))))))

Добавлено через 28 секунд
Цитата(andrew_121 @  13.6.2008,  15:59 Найти цитируемый пост)
Ошибка при доступе к памяти. Бывает. 


А что с ней делать????
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0614 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.