Поиск:

Ответ в темуСоздание новой темы Создание опроса
> 50-разрядный калькулятор 
:(
    Опции темы
kivankov
Дата 30.4.2012, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 30.4.2012

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



Друзья!

Прошу Вас проконсультировать меня по одному вопросу.

Насколько реализуемой, и если реализуемой, то насколько трудоёмкой для исполнения в человеко-днях является создание библиотеки для операций с числами с мантиссой 50 разрядов? Т.е. по сути нужен 50-разрядный калькулятор.

Минимальные необходимые действия: сложение, вычитание, умножение, деление, возведение в целочисленную степень (до 5), извлечение квадратного корня.

Вопрос не праздный, есть конкретная задача.

С уважением,
Константин
PM MAIL   Вверх
nworm
Дата 30.4.2012, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 502
Регистрация: 22.10.2005

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



Трудоёмкой, но реализуемый.

Надо смотреть вот на что. Обязательно надо именно 50 разрядов?
Часто проще взять готовые библиотеки с похожим числом разрядов.
Есть библиотеки для работы со коль угодно длинными целыми числами.
Возможно, и для сколь угодно точных вещественных есть библиотеки.
PM MAIL WWW   Вверх
kivankov
Дата 30.4.2012, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 30.4.2012

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



Нет, минимум нужно 45-48 разрядов. 50 - это с запасом.
Если больше - то не помешает.
Калькулятор требуется для подтверждения гипотезы о существовании целого числа 4,16... E42 в связи с конкретной задачей. Лишние разряды не повредят.

Спасибо за информацию, приму к сведению.
А где можно поискать такие библиотеки?
PM MAIL   Вверх
Akina
Дата 30.4.2012, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


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

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



По-моему, найти библиотеку для работы со сверхдлинными числами, да ещё с таким простейшим набором действий - совершенно не проблема...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Фантом
Дата 30.4.2012, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

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



Цитата(kivankov @  30.4.2012,  19:33 Найти цитируемый пост)

Вопрос не праздный, есть конкретная задача.

Для решения одной конкретной задачи проще всего воспользоваться уже готовыми инструментами. В данном конкретном случае - любым достаточно универсальным пакетом компьютерной алгебры.
PM   Вверх
_Y_
Дата 30.4.2012, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(Фантом @  30.4.2012,  19:16 Найти цитируемый пост)
любым достаточно универсальным пакетом компьютерной алгебры. 


В конце 80х был такой язык Reduce. Это была первая мне известная компьютерная алгебра. В нем же можно было проводить вычисления с заданным, но ничем не ограниченным, числом знаков. Потом этот язык вошел в Maple, а сейчас, после многий преобразований, его потомство живет в Mathematica от Wolfram Research. Но, честно говоря, не знаю сохранилась ли там до сих пор возможность таких вычислений. В любом случае, стОит попробовать - море времени сэкономится.

Это сообщение отредактировал(а) _Y_ - 30.4.2012, 22:01


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
Фантом
Дата 30.4.2012, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

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



Цитата(_Y_ @  30.4.2012,  23:01 Найти цитируемый пост)
В конце 80х был такой язык Reduce. Это была первая мне известная компьютерная алгебра. В нем же можно было проводить вычисления с заданным, но ничем не ограниченным, числом знаков. Потом этот язык вошел в Maple, а сейчас, после многий преобразований, его потомство живет в Mathematica от Wolfram Research. Но, честно говоря, не знаю сохранилась ли там до сих пор возможность таких вычислений. В любом случае, стОит попробовать - море времени сэкономится.

Историю Вы малость перепутали.  smile REDUCE (это не язык, а пакет) существует и сейчас, хотя лидирующие позиции и утратил. Maple и Mathematica - не наследники REDUCE, а аналоги (не являющиеся и потомками друг друга). 

Кроме этого, есть и другие системы компьютерной алгебры, и возможность вычислений с произвольной точностью для них - практически обязательный атрибут.
PM   Вверх
volatile
Дата 1.5.2012, 00:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(kivankov @  30.4.2012,  18:51 Найти цитируемый пост)
для подтверждения гипотезы о существовании целого числа 

Если только целые числа, то питон поддерживает бесконечную разрядность для целых чисел.

можно даже онлайн:
http://codepad.org/YFyA3AcS
PM MAIL   Вверх
disputant
Дата 1.5.2012, 06:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 210
Регистрация: 28.11.2011

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



Цитата(volatile @ 1.5.2012,  00:17)
Если только целые числа, то питон поддерживает бесконечную разрядность для целых чисел.

REXX тоже умеет smile

Для C/C++ давно использую MAPM (ну, так исторически получилось smile)
PM MAIL   Вверх
_Y_
Дата 1.5.2012, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(Фантом @ 30.4.2012,  22:10)
Историю Вы малость перепутали.  smile REDUCE (это не язык, а пакет) существует и сейчас, хотя лидирующие позиции и утратил. Maple и Mathematica - не наследники REDUCE, а аналоги (не являющиеся и потомками друг друга). 

Кроме этого, есть и другие системы компьютерной алгебры, и возможность вычислений с произвольной точностью для них - практически обязательный атрибут.

Может сейчас Reduce и пакет, но когда я с ним работал был языком. В инструкции было написано Язык Reduce построенный на базе языка RLisp, в свою очередь построенного на базе Lisp (не дословно так как написано было по-английски). Как я понимаю, пакет это дополнение к имеющемуся языку или программе. А Reduce для работы не требовал предварительной установки чего-то еще. Работал я с ним сначала на больших машинах, а потом на чем-то настольном  - не помню уже может это была система PDP-11 а может уже и DOS.

Были у него лидирующие позиции или нет - не знаю. В то время что в руки попало подходящее с тем и работали. Интернета не было - С информацией слабо было.

С Maple я никогда не работал - могу и ошибаться. А вот первая или вторая Mathematica брали мои старые Reduce-программы без необходимости какой-либо переработки. Так что, думаю, это все-таки был Reduce.

Про другие системы я не в курсе - не приходилось сталкиваться.


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
volatile
Дата 1.5.2012, 23:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(disputant @  1.5.2012,  06:45 Найти цитируемый пост)
 MAPM

косяки у нее были (щас не знаю как).
мне вот эта больше по душе.

PM MAIL   Вверх
Фантом
Дата 1.5.2012, 23:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

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



Цитата(_Y_ @  2.5.2012,  00:07 Найти цитируемый пост)

Может сейчас Reduce и пакет, но когда я с ним работал был языком. В инструкции было написано Язык Reduce построенный на базе языка RLisp, в свою очередь построенного на базе Lisp (не дословно так как написано было по-английски).

"Пакет" - это комплекс программ, предназначенный для решения задач из некоторой предметной области. Соответственно, частью пакета может быть интерпретатор некоторого языка. В такой ситуации пакеты и встроенные языки для них действительно часто смешивают. 
PM   Вверх
disputant
Дата 2.5.2012, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 210
Регистрация: 28.11.2011

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



Цитата(volatile @ 1.5.2012,  23:42)
Цитата(disputant @  1.5.2012,  06:45 Найти цитируемый пост)
 MAPM

косяки у нее были (щас не знаю как).
мне вот эта больше по душе.

А какие именно, не помните? Когда? 
PM MAIL   Вверх
W4FhLF
Дата 2.5.2012, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

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



В новом наборе инструкций AVX регистры процессора 256разрядные. Это больше 50 значащих знаков. Но я не уверен, что с ними можно работать как с единым числом?

Есть такие интересные пакеты: http://www.advanpix.com/
Где разрядность задаётся явно.


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
_Y_
Дата 2.5.2012, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(Фантом @  1.5.2012,  23:54 Найти цитируемый пост)
"Пакет" - это комплекс программ, предназначенный для решения задач из некоторой предметной области. Соответственно, частью пакета может быть интерпретатор некоторого языка. В такой ситуации пакеты и встроенные языки для них действительно часто смешивают.

Хорошо, но тогда что, помимо интерпретатора входило в тот архаичный Reduce?


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
Фантом
Дата 2.5.2012, 23:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

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



Цитата(_Y_ @  2.5.2012,  22:45 Найти цитируемый пост)

Хорошо, но тогда что, помимо интерпретатора входило в тот архаичный Reduce? 

Собственно система компьютерной алгебры.  smile Разобрать какой-нибудь integrate(sin(x),x) не проблема - проблема найти аналитическое представление для первообразной заданной функции.
PM   Вверх
volatile
Дата 3.5.2012, 00:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(disputant @ 2.5.2012,  12:52)
Цитата(volatile @ 1.5.2012,  23:42)
Цитата(disputant @  1.5.2012,  06:45 Найти цитируемый пост)
 MAPM

косяки у нее были (щас не знаю как).
мне вот эта больше по душе.

А какие именно, не помните? Когда?

disputant, мне когда-то (года ~2 назад) для одного проекта нужна была длинная арифметика, и я тестировал несколько разных библиотек.
Все протестированные либы сложил в папочку, со своими комментариями.
Щас посмотрел в ту папочку. Среди протестированных оказалась и MAPM.
Вот мои комментарии того времени. (писал их исключительно для себя)
Цитата

Впечатление что писал либу дилетант.
Иногда выдает варнинг на экран. (Для либы не годится)
Часто воспринимает за числа полную фигню молча. (Вообще ни для чего никуда не годится.)
например
ввод - вывод

3j3k3l - 888990.0
1q1q - 7575.0
3t3t - 9898.0
4t4t - MAPM Warning: 'm_apm_set_string', Non-digit char found in parse

Числа в библиотеке используются десятичные.
Много идиотского кода.
Но оформлено все хорошо.
Вставить в свою прогу либу легко.
Есть хорошая обёртка С++.

тестировалась либа в течение нескольких часов, так что глубоко не копал, но этого хватило чтобы отвергнуть ее.

PM MAIL   Вверх
disputant
Дата 3.5.2012, 06:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 210
Регистрация: 28.11.2011

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



Спасибо, эти баги (со вводом) остались. 

Если бы быть уверенным, что в математике багов нет...
с этими-то справиться достаточно легко, все равно у меня своя обертка. А, как вы справедливо заметили, MAPM очень легкая в использовании. На ttmath посмотрел - Open Watcom вообще не компилит, вылетает с run-time ошибкой... :(
PM MAIL   Вверх
_Y_
Дата 3.5.2012, 21:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(Фантом @ 2.5.2012,  23:31)
Цитата(_Y_ @  2.5.2012,  22:45 Найти цитируемый пост)

Хорошо, но тогда что, помимо интерпретатора входило в тот архаичный Reduce? 

Собственно система компьютерной алгебры.  smile Разобрать какой-нибудь integrate(sin(x),x) не проблема - проблема найти аналитическое представление для первообразной заданной функции.

Ничего не понял. А что тогда язык Reduce если не система компьютерной алгебры?


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
Фантом
Дата 3.5.2012, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

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



Цитата(_Y_ @  3.5.2012,  22:07 Найти цитируемый пост)

Ничего не понял. А что тогда язык Reduce если не система компьютерной алгебры? 

Хм... Вы всерьез не видите разницы между языком и компилятором/интерпретатором этого языка?


PM   Вверх
_Y_
Дата 3.5.2012, 23:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(Фантом @  3.5.2012,  21:25 Найти цитируемый пост)
 Вы всерьез не видите разницы между языком и компилятором/интерпретатором этого языка?

 smile Это не автомобиль. Это пакет. Вы всерьез не видете разницы между автомобилем и мотором автомобиля?
Мне кажется, что дискуссия ушла в какие-то семантические дебри. ИМХО если имеем некий продукт и этот продукт имеет всего одну основную функцию, то и категорируется он соответственно этой функции, а не по тому, что там внутри эту функцию обеспечивает.



--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
Фантом
Дата 4.5.2012, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

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



Цитата(_Y_ @  4.5.2012,  00:25 Найти цитируемый пост)
не кажется, что дискуссия ушла в какие-то семантические дебри. ИМХО если имеем некий продукт и этот продукт имеет всего одну основную функцию, то и категорируется он соответственно этой функции, а не по тому, что там внутри эту функцию обеспечивает.

Ну как хотите. Ваш подход к именованию не является общепринятым, но, если Вам так удобнее, пожалуйста.
PM   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


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

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


 




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


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

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