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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2009, 16:04   #1
Flex
Разленившийся я...
Пользователь
 
Аватар для Flex
 
Регистрация: 02.09.2008
Сообщений: 81
По умолчанию Нужен тип чисел больший за long, что делать?

Делаю программу,связанную с факториалами, где для решения нужны числа более обширные за дипазон LongInt: - 2147483648 .. 2147483647. Что делать?
Да и калькулятор в Windows (инженерный) работает с более обширным диапазоном.
Flex вне форума Ответить с цитированием
Старый 01.06.2009, 16:27   #2
TilerDerton
Пользователь
 
Регистрация: 12.02.2009
Сообщений: 34
По умолчанию

Нужна 64-битная переменная.
По идее: (Аналог longint, т.е. только целые числа)
Код:
var
a:Int64;
TilerDerton вне форума Ответить с цитированием
Старый 01.06.2009, 16:36   #3
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Для факториалов int64 тоже хватит ненадолго, да и comp уже кажется на 24! даёт ошибку. Тут уже надо писать длинную арифметику
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 01.06.2009, 16:46   #4
Flex
Разленившийся я...
Пользователь
 
Аватар для Flex
 
Регистрация: 02.09.2008
Сообщений: 81
По умолчанию

Цитата:
Сообщение от TilerDerton Посмотреть сообщение
Нужна 64-битная переменная.
По идее: (Аналог longint, т.е. только целые числа)
Код:
var
a:Int64;

Цитата:
Сообщение от Greblin Посмотреть сообщение
Для факториалов int64 тоже хватит ненадолго, да и comp уже кажется на 24! даёт ошибку.
Да, есть такое. Не хватает.

Цитата:
Сообщение от Greblin Посмотреть сообщение
Тут уже надо писать длинную арифметику
Тоесть?
Flex вне форума Ответить с цитированием
Старый 01.06.2009, 18:49   #5
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Арифметика длинных чисел, у меня имеется .
В общем два пути:
1. Быстрый - разложение числа в массив целых
2. Дает большее количество разрядов и проще в создании (ИМХО) - использование для хранения числа строки.

Самый распространенный вариант была написан Vit с Vingrad. Гугл тебе поможет в его поиске. У меня имеется также самописный модуль - 4 операции и пару приблуд - типа определение числа разрядов, округление, отбрасывание дробной части ну и прочее в том же духе. Факториал для 100 при включенном ВинАмпе на Celeron 3000 и 512 Mb вычисляется минут за 20 примерно.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 01.06.2009, 19:46   #6
BaronTreep
Форумчанин
 
Регистрация: 29.05.2009
Сообщений: 320
По умолчанию

Цитата:
Факториал для 100 при включенном ВинАмпе на Celeron 3000 и 512 Mb вычисляется минут за 20 примерно.
Как странно... Maple считает факториалы для тысяч за "секунды". Нада юзать Теорию Чисел...
BaronTreep вне форума Ответить с цитированием
Старый 01.06.2009, 19:52   #7
Flex
Разленившийся я...
Пользователь
 
Аватар для Flex
 
Регистрация: 02.09.2008
Сообщений: 81
По умолчанию

Цитата:
Сообщение от Utkin Посмотреть сообщение
Арифметика длинных чисел, у меня имеется .
В общем два пути:
1. Быстрый - разложение числа в массив целых
2. Дает большее количество разрядов и проще в создании (ИМХО) - использование для хранения числа строки.

Самый распространенный вариант была написан Vit с Vingrad. Гугл тебе поможет в его поиске.
Можно поподробнее что это, а то при поиске в основном выходил на Форум программистов Vingrad.ru.
Блин тольк дошло - по ходу как раз про тот форум Вы и говроили, и искать темы от Vit a?
Цитата:
Сообщение от BaronTreep Посмотреть сообщение
Как странно... Maple считает факториалы для тысяч за "секунды". Нада юзать Теорию Чисел...
Интересно, для всех типов чисел, или только целых?
Flex вне форума Ответить с цитированием
Старый 01.06.2009, 20:09   #8
BaronTreep
Форумчанин
 
Регистрация: 29.05.2009
Сообщений: 320
По умолчанию

Факториал обычно вычисляют только для целых. Конечно можно посчитать и для дробных, но это не имеет никакого применения (ну я не знаю), т.е. как мат. структура факториал возникает в областях, связанных с целыми числами. Длинная арифметика для дробных к тому же сложней, чем для целых.
BaronTreep вне форума Ответить с цитированием
Старый 01.06.2009, 20:19   #9
Flex
Разленившийся я...
Пользователь
 
Аватар для Flex
 
Регистрация: 02.09.2008
Сообщений: 81
По умолчанию

Цитата:
Сообщение от BaronTreep Посмотреть сообщение
Факториал обычно вычисляют только для целых. Конечно можно посчитать и для дробных, но это не имеет никакого применения (ну я не знаю), т.е. как мат. структура факториал возникает в областях, связанных с целыми числами. Длинная арифметика для дробных к тому же сложней, чем для целых.
А блин, я сам не понял что спросил. Видать пересидел, башка уже не варит. А столь быстрое нахождение факториалов элементарно находиться, если использовать базу данных, где уже расписаны ранее вычисленые факториалы, и при вводе пользователем числа, просто нходит ее из таблици, и вписывает как результат. Все гениальное просто =)
Flex вне форума Ответить с цитированием
Старый 01.06.2009, 20:26   #10
Izhic
Форумчанин
 
Аватар для Izhic
 
Регистрация: 08.10.2008
Сообщений: 668
По умолчанию

Для delphi Я использовал библиотеку hugeint когда шифрованием файлов занимался. Правда там всё на процедурах , эдакий аля Асм. Надо какнибудь на функции для удобства переделать будет.
Don't worry be happy
Izhic вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите отобразить тип LONG в DBMemo funball БД в Delphi 13 17.04.2009 11:46
Перевод десятичных чисел в тип Double Kuzya59 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 04.12.2008 15:41
Как прочитать 10 байтовый тип вещественных чисел The REAL Общие вопросы .NET 3 05.09.2008 10:46