Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
Кстати. Подумай над библиотекой рациональных чисел. Так чтобы 1/3 + 2/3 точно равнялось 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2014, 12:34 |
|
||
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovSashaMercuryа как я массивы буду хранить ?Как-то так: Код: sql 1. P.S. Я бы посмотрел на уже имеющиеся пакеты длинной арифметики прежде, чем начать изобретать собственный велосипед. Чтобы не делать треугольных колёс. массив формируется динамически, я не могу хранить его в таком виде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2014, 15:13 |
|
||
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
maytonКстати. Подумай над библиотекой рациональных чисел. Так чтобы 1/3 + 2/3 точно равнялось 1. мне кажется что данную задачу можно решить проще, да и знаменатель не влезет в 8 Байт в некоторых случаях. Разве только использовать после первого прогона эту библиотеку. Постараюсь решить так как сейчас решаю, нужно додумать как привести знаменатель к 1, это не должно быть сложно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2014, 15:17 |
|
||
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
SashaMercury, даю подсказку. В сложении дробей помогает алгоритм Евклида. https://ru.wikipedia.org/wiki/Алгоритм_Евклида Если взять более общий случай (знаменатели разные) то тебе понадобиться приведение к общему знаменателю. Я в этой задаче пошёл по самому длинному пути. Я раскладывал числа на множители. Для этого мне нужны были все primes в диапазоне знаменателей. Потом я делал булевы операции над primes и получал НОК. Делал сложение числителей с учотов весов. И ... хопа. Снова нужно сокращать. Раскладывал полученый числитель на множители ну вобщем трахомозг. Вобщем я отказался от разложения на primes по одной простой причине. Алгоритм Евклида позволил сделать сокращение дроби без разложения на множители. Это воистину полезный и замечательный алгоритм. Как говоится из серии must have. А от приведения к общ знаменателю я отказался. Я просто множил оба знаменателя. Один хрен.. Евклид работал быстрее любого разложения. И его фаза была финальной в обоих вариантах. Вобщем НОК оказался не нужен. P.S. Попытка разлагать числа на primes вызвала у меня много часов безсонницыт и несколько килобайт букв на этом форуме. Вобщем к этой задаче я еще вернусь. Если будет интересно. Эффективный алго prime-gen я так и не создал. Но гораздо ценнее были практические знания из теории чисел которые я получил в процессе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2014, 16:15 |
|
||
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
mayton, так у вас работают сочетания ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2014, 02:17 |
|
||
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
Если честно я еще не смотрел. А что? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2014, 09:51 |
|
||
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
Наведи порядок в сорцах. У тебя аллоцирование памяти "C"-like, а циклы используешь от С++. Вобщем сделай нормальное приложение. С точкой входа в программу. Давай удачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2014, 12:25 |
|
||
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
maytonУ тебя аллоцирование памяти "C"-like, а циклы используешь от С++. Уже 15 лет как в С можно объявлять переменную прямо в цикле :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2014, 12:35 |
|
||
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
Ох увы мне увы. Сижу на старых Сях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2014, 13:02 |
|
||
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Подскажите пожалуйста, имеет место быт такой код ? Меня больше интересуют моменты касаемо isFreeMemory Код: 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. 53. 54. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 08:51 |
|
||
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
Разбираюсь с этой memory leak .. Пока что она меня бьёт больше чем я её ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 08:52 |
|
||
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
Возьми себе за правило устанавливать указатель в NULL после освобождения памяти. Тогда отлаживать проще будет. Схематично так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 09:11 |
|
||
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
SashaMercury Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. s2 никогда не освободится, есичё )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 10:21 |
|
||
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
Dima TВозьми себе за правило устанавливать указатель в NULL после освобождения памяти. Тогда отлаживать проще будет.а лучше взять себе за правило использовать для каждой задачи свою локальную переменную, тогда отлаживать будет ещё проще, особенно, если давать им имена чуть более осмысленные, чем "р", "с" и прочие "ab" ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 10:24 |
|
||
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
Dima T, и почему бы не инициализировать переменную прямо по месту её объявления. Схематично так Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 10:26 |
|
||
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
egorychDima T, и почему бы не инициализировать переменную прямо по месту её объявления. Схематично так Код: plaintext 1. 2. 3. Когда так можно сделать, то и проблем нет. Я общий случай описал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 10:45 |
|
||
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
egorychSashaMercury Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. s2 никогда не освободится, есичё ))глупость я написал, освободится, конечно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 10:57 |
|
||
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
Dima TegorychDima T, и почему бы не инициализировать переменную прямо по месту её объявления. Схематично так Код: plaintext 1. 2. 3. Когда так можно сделать, то и проблем нет. Я общий случай описал.если сразу проектировать программу в этом стиле, то он и будет общим случаем, с 95% вероятностью ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 11:07 |
|
||
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
egorychDima Tпропущено... Когда так можно сделать, то и проблем нет. Я общий случай описал.если сразу проектировать программу в этом стиле, то он и будет общим случаем, с 95% вероятностью На вкус и цвет ... Задачи разные бывают. У меня на С в основном DLL-ки вспомогательные, которые грузятся всегда, а задействованы могут быть пару раз в году. Какой смысл напрягать проц лишними операциями при загрузке? Поэтому лично я предпочитаю инициализировать NULL, а при необходимости память выделить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 12:24 |
|
||
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
SashaMercuryРазбираюсь с этой memory leak .. Пока что она меня бьёт больше чем я её Саш. А ты себя позиционируешь как Windows-C++ разработчик? Или есть другие варианты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 13:39 |
|
||
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
Dima TУ меня на С в основном DLL-ки вспомогательные, которые грузятся всегда, а задействованы могут быть пару раз в году. Какой смысл напрягать проц лишними операциями при загрузке?что бы это значило? в коде char *prt = malloc(...); процессор напрягается в момент исполнения этой строчки кода, если ptr - не глобальный объект. Если функция из dll используется 2 раза в год, то и такая строчка исполнится 2 раза в год, при загрузке библиотеки только DllMain исполняется автоматом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 17:54 |
|
||
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
Интересные темы обсуждаете господа, даже поиграть забыл ... maytonSashaMercury, даю подсказку. В сложении дробей помогает алгоритм Евклида. https://ru.wikipedia.org/wiki/Алгоритм_Евклида Если взять более общий случай (знаменатели разные) то тебе понадобиться приведение к общему знаменателю. Я в этой задаче пошёл по самому длинному пути. Я раскладывал числа на множители. Для этого мне нужны были все primes в диапазоне знаменателей. Потом я делал булевы операции над primes и получал НОК. Делал сложение числителей с учотов весов. И ... хопа. Снова нужно сокращать. Раскладывал полученый числитель на множители ну вобщем трахомозг. Вобщем я отказался от разложения на primes по одной простой причине. Алгоритм Евклида позволил сделать сокращение дроби без разложения на множители. Это воистину полезный и замечательный алгоритм. Как говоится из серии must have. А от приведения к общ знаменателю я отказался. Я просто множил оба знаменателя. Один хрен.. Евклид работал быстрее любого разложения. И его фаза была финальной в обоих вариантах. Вобщем НОК оказался не нужен. Жёстко ... a*b = НОК(a,b) * НОД(a,b) - спасибо моему учителю, долгих ему лет здоровья mayton, а что там с СС Фибоначи, так интересно начиналось? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 20:57 |
|
||
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
У, как у вас тут интересно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 21:18 |
|
||
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
Ну вобщем Фибоначчи я задумывал как один из способов организации кеша Primes. В отличие от кодов Левеншнтейна код Фибоначчи подкупает своей простотой. Но развивая идею я думал о реализации основных 4-х арифметических операциях. И хотя для задачи cachePrimes сложение и вычитание не является необходимостью я просто обобщал и решил а "почему-бы и нет". В мохнатые времена один Росиянин создавал ЭВМ работающую на "троичной" арифметике. Вобщем полёту фантазии нет предела. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 21:52 |
|
||
|
Длинная арифметика. Вопросы по реализации/оптимизации
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Дмитрий, спасибо, я попробую сейчас, исправлю кое-что:) maytonSashaMercuryРазбираюсь с этой memory leak .. Пока что она меня бьёт больше чем я её Саш. А ты себя позиционируешь как Windows-C++ разработчик? Или есть другие варианты? Марк, Нет конечно, какой из меня Программист, или Разработчик. Уже говорил свою позицию по значению слова Программист (Разработчик). Позиционирую себя изучающим язык программирования Си ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2014, 01:57 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=38821006&tid=2019209]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
46ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 274ms |
| total: | 418ms |

| 0 / 0 |
