Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.04.27;
Скачать: CL | DM;

Вниз

Есть вопрос. Большие числа.   Найти похожие ветки 

 
AlexDan ©   (2008-03-31 21:23) [0]

Есть вопрос. Большие числа. В модуле UMathServices.pas (для работы с длинными числами) и ему подобных числа ( и результаты экспортных функций) рассматриваются как строки. Значит в дальнейшем их использование исключает работу с циклами (например While и т.п.). Как выйти из данной ситуации? Тут видимо нужны специальные алгоритмические подходы? Может кто с этим сталкивался?


 
Palladin ©   (2008-03-31 21:25) [1]

Ну я сталкивался и что дальше?


 
AlexDan ©   (2008-03-31 21:27) [2]

Видимо выход алгоритмический (или есть стандартные компоненты)?


 
Palladin ©   (2008-03-31 21:30) [3]

Конечно алгоритмический. Борланду нафиг не нужна поддержка в RTL астрономических величин.


 
AlexDan ©   (2008-03-31 21:37) [4]

Он один или несколько? Если честно я нашел один (через if и метки), но в циклах (тем более больших) чем меньше операторов тем лучше. (Быстродействие).


 
Сергей М. ©   (2008-03-31 21:44) [5]


> числа .. рассматриваются
> как строки. Значит в дальнейшем их использование исключает
> работу с циклами


Это почему же ?
Любую строку можно рассматривать как массив (или, если угодно, список) символов.
И к массиву и к списку (точнее, к их элементам) можно обращаться итеративно в цикле.


 
AlexDan ©   (2008-03-31 21:57) [6]

Например нужно сравнить два числа (каждое больше Double и т.п.) По моему тут поэлементно (как к массиву) не получится.


 
AlexDan ©   (2008-03-31 21:58) [7]

Ведь в массивах разное количество членов.


 
Сергей М. ©   (2008-03-31 22:05) [8]


> поэлементно (как к массиву) не получится


Почему ?

MyString[i] как раз и есть "поэлементно".


> в массивах разное количество членов


Это никоим образом не мешает "членосравнению", если тобой правильно сопоставляются индексы сравниваемых "членов")


 
Palladin ©   (2008-03-31 23:28) [9]


>  По моему тут поэлементно (как к массиву) не получится.

Таких не берут в космонаффты...


 
Германн ©   (2008-04-01 00:49) [10]


> Palladin ©   (31.03.08 23:28) [9]
>
>

Достаточно одной "ф".
(с) Сам знаешь какой. :)


 
AlexDan ©   (2008-04-01 01:19) [11]

В моём случае я пользовался несколько другим методом.


 
AlexDan ©   (2008-04-01 01:30) [12]

И ещё кстати:
> Palladin ©
> Борланду нафиг не нужна поддержка в RTL астрономических
> величин.
Досадно, и видимо это достаточно общая тенденция, что серьёзные програмы минимизируют  научную (или даже сказать продуктивную) отдачу, доводя до максимума графическую (или пользовательскую). Т.е. занимаются прорисовкой точечек, и всякой прочей дребеденью. Самый известный всем пример это почти весь Майкрософт да и вобще примеров масса.


 
Германн ©   (2008-04-01 01:36) [13]


> AlexDan ©   (01.04.08 01:30) [12]
>
> И ещё кстати:
> > Palladin ©
> > Борланду нафиг не нужна поддержка в RTL астрономических
> > величин.
> Досадно, и видимо это достаточно общая тенденция, что серьёзные
> програмы минимизируют  научную (или даже сказать продуктивную)
> отдачу, доводя до максимума графическую (или пользовательскую).
>  Т.е. занимаются прорисовкой точечек, и всякой прочей дребеденью.
>  Самый известный всем пример это почти весь Майкрософт да
> и вобще примеров масса.
>

И ещё кстати. Серьёзные программы создаются либо для массового пользователя, либо для конкретного пользователя, который может и оплатить трудозатраты и принести прибыль. И тут уж никуда не попрёшь! Ну разве только в "розовых снах".


 
Slym ©   (2008-04-01 04:34) [14]

AlexDan ©   (31.03.08 21:23)
Если модуль объявляет новый неведомый тип, то он должен предоставить функции для работы с этим типом... в том числе функции присваивания и сравнения... если это не так: фтопку модуль


 
Семеныч   (2008-04-01 06:10) [15]

> AlexDan ©   (01.04.08 01:30) [12]

Процент расчетных программ в их общем числе не очень высок, а процент расчетных программ, для которых недостаточно точности и/или диапазона Extended, вообще исчезающе мал. Поэтому нет никакого смысла повышать цену продукта, включая в него модули для работы с такими числами и заведомо зная, что использовать эти модули будут лишь единицы.

Для таких единиц существуют специальные библиотеки, которые никто не мешает приобрести. И если это действительно серьезная библиотека, то, как справедливо замечено в [14], в ней должны быть полный набор функций для выполнения всех элементарных операций.

И если какие-то элементарные операции в библитеке не реализованы, то воля Ваша, но лично я бы пользоваться такой библиотекой не стал. Потому что возникают подозрения, что писана она не профессионалом (который обязательно предусмотрел бы в ней все), а пионером Васей Пупкиным на собственной коленке - то есть, имеются основания такому продукту не доверять.

PS
Кстати, еще не факт, что для Вашей программы не годится "родной" тип Extended. Если не устраивает его диапазон (3.6е-4951...1.1е4932), то часто бывает достаточно просто отмасштабировать задачу. Если же не устраивает его точность (19-20 десятичных знаков), то стоит задуматься о том, а обеспечивает ли используемый метод расчета даже такую точность?


 
Семеныч   (2008-04-01 06:17) [16]

Вдогонку.

PPS
Говоря о точности, стоит подумать и о том, какую точность имеют исходные данные. И если их точность - N знаков, то зачем считать с точностью выше N+2 знаков? Ведь плата (скоростью и памятью) за использование специальных типов данных вместо "родных" поистине огромна, а есть ли в ней смысл?


 
Jeer ©   (2008-04-01 09:22) [17]

Я точно знаю - человек считает динамику движения атомов во Вселенной.


 
Anatoly Podgoretsky ©   (2008-04-01 12:07) [18]

> AlexDan  (01.04.2008 1:30:12)  [12]

Если человеку нужно, что то особенное, то он всегда может купить внешнею библиотеку или заказать разработку, которых многие, многие тысячи. Но и Борланд готов осуществить ваш каприз, были бы деньги, а если денег нет, то и библиотеки нет.


 
AlexDan ©   (2008-04-01 19:59) [19]

> Jeer ©
> Я точно знаю - человек считает динамику движения атомов
> во Вселенной.
Ничего подобного. В теории чисел иногда нужно прибегать к значительным вычислениям(к тому-же точным). У меня есть некоторые гипотезы насчёт простых чисел. Бывало личное ПО работало сутками.   Delphi дает точность max 18 знаков. Это очень мало. В форуме я уже не раз этот вопрос затрагивал.


 
AlexDan ©   (2008-04-01 20:02) [20]

> Семеныч   (01.04.08 06:17) [16]
> Вдогонку.
То же что и предыдущему.


 
AlexDan ©   (2008-04-01 20:05) [21]

> Семеныч   (01.04.08 06:17) [16]
> Вдогонку.
И ещё вдогонку. Семёныч, Вы почему не зарегистрированны?? Как говориться автора на сцену. Да здравствует личная переписка!


 
palva ©   (2008-04-01 20:16) [22]

> Бывало личное ПО работало сутками.
Тогда зачем вы пользуетесь текстовым представлением числа? Общепринятое представление больших целых ускорило бы вычисления на пару порядков.



Страницы: 1 вся ветка

Текущий архив: 2008.04.27;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.02 c
2-1206856672
Fedor
2008-03-30 09:57
2008.04.27
Как узнать кол-во дней между датами в TDateTimePiker-ах?


2-1207155140
Пётр
2008-04-02 20:52
2008.04.27
Подпапки


2-1207132584
Res
2008-04-02 14:36
2008.04.27
Окно


15-1205093038
Константинов
2008-03-09 23:03
2008.04.27
Защита ПК на анлим подключении.


8-1179237859
Светлана
2007-05-15 18:04
2008.04.27
перетаскивание компонентов ( DragnDrop )