Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
Лучше - размер/size :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2014, 03:01 |
|
||
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky, под размером обычно понимается число занимаемых байт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2014, 10:35 |
|
||
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
RWolfпод размером обычно понимается число занимаемых байт. Нет такого обычая. Размер это просто размер. В любых единицах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2014, 19:35 |
|
||
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
SashaMercuryЯ могу сказать "половина сантиметра", но не могу сказать "половина символа".Вот математик может быть и не может сказать "половина символа", а тот кто изучает computer science может... Существует единица измерения "ниббл" (nibble) которая как раз и является половиной символа. В нынешнее время она почти не используется, но... SashaMercuryПривел несколько доводов в пользу слова мощность.Неубедительные доводы. SashaMercuryПросто хочу понять почему так.Термины придумываются так, чтобы наиболее точно отражать внутреннюю сущность описываемого объекта. Потом, с течением времени, могут появляться искажения терминов или смена сущности объекта, тогда термин перестает быть прямым описанием сущности и становится просто традиционным названием. И тогда остается только зазубривать его... А еще бывают жаргонные словечки которые оказались настолько удобны что доросли до статуса терминов, при этом все уже забыли источник этого жаргонизма... И в любом случае, прочитай совет mayton'а еще раз и прими его. SashaMercuryПока делаю вывод: "Слово мощность подходит, но лучше использовать слово длина, в силу исторических причин". Понял. Больше на эту тему не дискутирую. Раз всем так не нравится. Возможно, дело в том что я слишком мало знаю в IT, потому так рассуждаю.Слово мощность совсем не подходит. Я тебе уже говорил и повторю еще раз: математика и информатика это две разные науки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2014, 19:35 |
|
||
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, Сообщество C: SS4. Где обоснование что числа в длинной арифметике нужно хранить реверсом (хотя вот тут я его не виню, может быть это очевидно для людей со степенью PhD(тут без иронии говорю)) сегодня столкнулся с аналогичной проблемой(аналогичной названию топика). Подскажите пожалуйста, как всё же делать правильно ? Использовать ли реверс ? По поводу памяти, и максимальной длины строки я решил следующее: нужно вводить максимальную планку, так возможно будет безопаснее. Вы согласны ? Или я преувеличиваю. Хочу увидеть классическое, грамотное решение данное задачи. Понимаю, что вы можете снова предложить погуглить(Анатолий ), но результаты этого процесса я обсуждал выше, то что я нашёл мне не понравилось, причём не понравилось обоснованно(как мне кажется). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2014, 09:35 |
|
||
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
SashaMercuryЗдравствуйте, Сообщество C: SS4. Где обоснование что числа в длинной арифметике нужно хранить реверсом (хотя вот тут я его не виню, может быть это очевидно для людей со степенью PhD(тут без иронии говорю)) сегодня столкнулся с аналогичной проблемой(аналогичной названию топика). Подскажите пожалуйста, как всё же делать правильно ? Использовать ли реверс ? По поводу памяти, и максимальной длины строки я решил следующее: нужно вводить максимальную планку, так возможно будет безопаснее. Вы согласны ? Или я преувеличиваю. Хочу увидеть классическое, грамотное решение данное задачи. Понимаю, что вы можете снова предложить погуглить(Анатолий ), но результаты этого процесса я обсуждал выше, то что я нашёл мне не понравилось, причём не понравилось обоснованно(как мне кажется). gmp изучал ? на счет реверса -- я не очень сильно в теме, но я впервые слышщу о необходимости хранить числа начиная с младших разрядов. P.S. Мало кто понимает, но мы все (большинство европейцев) пишем слова СЛЕВА НАПРАВО, а числа -- СПРАВА НАЛЕВО, и только арабы (ну, и евреи разумеется) пишут и то, и то одинаково. Для правильного написания текста, состоящего из цифр и букв разных алфавитов придуман специальный алгоритм, именуемый BIDI, и зафиксированный в спецификации UNICODE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2014, 10:55 |
|
||
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Нет, gmp не изучал. Сейчас посмотрю. Переделал алгоритм, не то чтобы переделал, просто написал заново, смотрю на свой предыдущий код, и вижу много различий. Код стал другой. Странно. Буду разбираться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2014, 04:10 |
|
||
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
Вы имеете ввиду систему норм и правил в отношении производства или библиотеку Си для вычислений с плавающей точкой ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2014, 04:13 |
|
||
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Сегодня читал Спинеллиса, Анализ программного кода. Встретил описание интересных функций, memset,memcpy,memmove. Посмотрите какой код я предлагаю в качестве оптимального(на данный момент, буду рад предложениям по оптимизации) для сложения двух длинных неотрицательных чисел до использования этих функций. Код: plaintext 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. 52. Чем меня раньше смущала такой участок кода ? Код: plaintext 1. 2. 3. 4. тем, что мне сложно было решить использовать ли фигурные скобки или нет. После моего знакомства с этими функциями в книге, я обратился к стандарту, где встретил их, мне они не показались плохими, и я решил тут-же их использовать. Посмотрите что получилось Код: plaintext 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. Код стал более читабелен, и нравится мне больше. Хотя вероятно я проигрываю в скорости и памяти на этом участке кода Код: plaintext 1. 2. 3. 4. ибо Код: plaintext 1. известно как работает. ISO/IEC 9899:201xThe memmove function copies n characters from the object pointed to by s2 into the object pointed to by s1. Copying takes place as if the n characters from the object pointed to by s2 are first copied into a temporary array of n characters that does not overlap the objects pointed to by s1 and s2, and then the n characters from the temporary array are copied into the object pointed to by s1. Конечно -же я не удержался, и использовал чудесный тернарный оператор. MasterZiv, не ругайтесь пожалуйста, но разве этот код не кажется вам более компактным и более понятным ? Я согласен с вами, Си-программисты так делают редко, это возможно плохой тон. Но это так красиво, что мне порой трудно удержаться. Код: plaintext 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. Используете ли вы функции которые я сегодня встретил ? Не проигрываю ли я в скорости при их использовании(кроме memmove) ? Правильно ли я понял, memmove лучше не использовать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 07:43 |
|
||
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
SashaMercury, Алгоритм использующий malloc не может быть оптимальным :) Начните с того что отделите выделение памяти от собственно вычислений. Всегда можно сделать функцию поверх них, которая их совместит. memmove в вашем алгоритме не нужна, т.к. нет пересекающихся областей памяти, memcpy - быстрее в теории. Ну и если речь зашла про оптимальность, то хранить и обрабатывать числа в виде десятичных цифр - это далеко не оптимально. Храните в виде 32- или 64-битных двоичных цифр размером в машинное слово. В этом случае ускорятся вычисления, но затормозится отображение (что практически никогда не является критичным) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 13:58 |
|
||
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyНу и если речь зашла про оптимальность, то хранить и обрабатывать числа в виде десятичных цифр - это далеко не оптимально. Храните в виде 32- или 64-битных двоичных цифр размером в машинное слово. В этом случае ускорятся вычисления, но затормозится отображение (что практически никогда не является критичным) Если стоит задача делать финансовые расчёты и часто-часто делать конверсию BIN=>DEC=>BIN для публикации то я-бы предложил BCD. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 14:30 |
|
||
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
mayton, Отчеты - это всегда агрегированные данные, в худшем случае тысячи записей. А исходные данные могут занимать миллиарды записей. Поэтому оптимизировать надо именно вычисления. ЗЫ. Не говоря уже о том что для финрасчетов никакая длинная арифметика не нужна :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 14:38 |
|
||
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
Кстати Oracle хранит мантиссу числа Number в виде цифры 100-ричной системы в двоичном виде в каждом байте. Никакого преимущества при отображении по сравнению с хранением по словам этот формат не дает. И так и так надо в цикле получать остатки для перевода в десятичную систему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 14:47 |
|
||
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky, согласен насчёт агрегаций и прочей другой аналитики. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 14:56 |
|
||
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyКстати Oracle хранит мантиссу числа Number в виде цифры 100-ричной системы в двоичном виде в каждом байте. Никакого преимущества при отображении по сравнению с хранением по словам этот формат не дает. И так и так надо в цикле получать остатки для перевода в десятичную систему. Зачем? одна 100-ричная цифра это ровно две десятичных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 15:09 |
|
||
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
RWolfЗачем? одна 100-ричная цифра это ровно две десятичных. Вот вам одна 100-ричная цифра в двоичном виде: 01011000 Отобразите ее в десятичной системе без деления :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 15:17 |
|
||
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
Хотя я допускаю, что я что-то неверно помню, и оракл хранит все-таки в BCD - по 10-ичной цифре в каждых 4 разрядах. В этом случае конечно не требуется никаких особых действий для отображения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 15:19 |
|
||
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyВот вам одна 100-ричная цифра в двоичном виде: 01011000 Отобразите ее в десятичной системе без деления :) Код: sql 1. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 15:31 |
|
||
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov0b01011000 Жалко что С/С++ такого не умеют ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 15:36 |
|
||
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyЖалко что С/С++ такого не умеют Умеют. Это документация про такую фичу не знает. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 15:45 |
|
||
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovУмеют. Это документация про такую фичу не знает. Че, прямо все умеют? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 15:51 |
|
||
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyЧе, прямо все умеют? Мелкомягкое поделие - не умеет. Но от него никто и не может ожидать соответствия стандартам или спецификациям K&R. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 16:00 |
|
||
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyRWolfЗачем? одна 100-ричная цифра это ровно две десятичных. Вот вам одна 100-ричная цифра в двоичном виде: 01011000 Отобразите ее в десятичной системе без деления :) В чём проблема? 01011000 / 10 = 8 01011000 % 10 = 8 результат: 88 Заметьте, мне не пришлось искать остаток от деления всего числа на 10, я ограничился одной цифрой. А мог вообще обойтись таблицей на 100 входов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 16:02 |
|
||
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
RWolfА мог вообще обойтись таблицей на 100 входов. Да, это оно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 16:27 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=38790101&tid=2019209]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
51ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 279ms |
| total: | 426ms |

| 0 / 0 |
