|
|
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
Стоп! Брейк. Не надо ругаться. Давайте только по задаче. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2013, 17:56 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
Тогда не понимаю :) Тупо построил n^2/2 (треугольную) матрицу и получил все возможные варианты, проредил сократимое и отсортировал на месте. Условие "быстро" не выполняется, но в исходной задаче его не было :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2013, 18:01 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, давай. Для себя я пытаюсь решить задачу где не будет хранения полу-матрицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2013, 18:32 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
Тестовые данные для n=256 приаттачу на всякий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2013, 19:23 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
Мой код - некрасив. 70 сек для генерации n=2048. Только для тестов. Поэтому хвастаться особо нечем. Но есть мысль что функция z=x/y непрерывна на каком-то множестве. И можно найти подъём или спуск по ней. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2013, 19:55 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
maytonДля себя я пытаюсь решить задачу где не будет хранения полу-матрицы.Спускаемся от заданного значения к единице, если остаток по модулю текущего значения равен нулю - идём на следующий шаг, иначе - добавляем очередного кандидата в столбец числителей. Так мы получаем "несократимое при данном знаменателе". Уменьшаем знаменатель на единицу и переходим к следующему столбцу. Начиная со второго столбца требуется дополнительная проверка, что (a/b) / (c/d) <> 1 "по всем предыдущим столбикам". Тривиально переписывается в a*d <> b*c. Остаётся сортировка, которая будет основана на этом же сравнении. Не исключено, что эффективнее (по времени) будет "сортировать" во время проверки на сократимость. Индексация, конечно, э-э-э ... Для педантов, в общем, но, вроде, сам алгоритм рабочий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2013, 20:22 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
Хотя, пожалуй, с индексацией и сортировкой особых проблем не будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2013, 20:26 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
maytonBasil A. Sidorov, давай. Для себя я пытаюсь решить задачу где не будет хранения полу-матрицы.а толку. вот мое решение, в котором память расходуется линейно, не дает особых преимуществ, так как временная сложность растет квадратично, и даже при не большем n(для которого легко и матрицу построить), время на выполнение становится неприемлемым. хотя, если стоит задача найти первую сотню элементов, для n = 1000000, то мое решение норм себя чувствует. так как памяти расходуется не много. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2013, 20:27 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovХотя, пожалуй, с индексацией и сортировкой особых проблем не будет Я не профилировал свой код но думаю что у меня просадка из-за использования java.lang.BigInteger длинной арифметики. И компаратор также тормозит из-за перерасчётов. Формула a*d <> b*c прекрасна. Но символьные расчёты всё скушали. Так что эти 70 сек - фейк который надо списать на ненужный тип данных. Тем более что знаменатель еще не вышел за диапазаон int64. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2013, 20:33 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
maytonМой код - некрасив. 70 сек для генерации n=2048. где твой код? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2013, 20:54 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
maytonНо символьные расчёты всё скушали.Изначально ясно, что в этой задаче должна быть целая арифметика. Вспоминаем школу и "переворот дробей" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2013, 21:07 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNmaytonМой код - некрасив. 70 сек для генерации n=2048. где твой код? Да мне стыдно его показывать. Да и вообще он только для тестов. Чтобы сгенерить тесткейсы. Или картинку эту нарисовать. Ну вот пока за эталон возму код с хаскелем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2013, 21:10 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
maytonНу вот пока за эталон возму код с хаскелем.не потепуй ) maytonДа мне стыдно его показывать я же не постыдился. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2013, 21:17 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
mayton, просто хотел сравнить. на моем компе, хаскельный код посчитал элементы для н = 2048 за 65 сек. поэтому я выше и писал, что для 2048 экономить память смысла нет. а больше в моем коде приемуществ и нет. нужно попробовать другой эксперимент. посчитать 1-ю сотню для н = 1000000. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2013, 21:27 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNнужно попробовать другой эксперимент. посчитать 1-ю сотню для н = 1000000.за 30 сек посчитало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2013, 21:29 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNZyK_BotaNнужно попробовать другой эксперимент. посчитать 1-ю сотню для н = 1000000.за 30 сек посчитало.но такая постановка задачи не интересна. все равно в числителе будут одни 1-ци. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2013, 21:31 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNZyK_BotaNпропущено... за 30 сек посчитало.но такая постановка задачи не интересна. все равно в числителе будут одни 1-ци.хотя, если поставить задачу первые 20000 элементов для н = 10000, то находит их за 10 сек. но для современных компов построить матрицу размером 100 000 000, не такая уж и проблема, но все же решение требующее только 10000 элементов одновременно - гораздо лучше, а именно в 10000 раз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2013, 21:57 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
Собственно Rational - не мой а заимствованый из другой библиотечки. Я допилил символьную арифметику. Логики здесь особой нету. Компаратор, сорт-множество, и internal GCD делают 70% работы. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2013, 23:58 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
maytonСобственно Rational - не мой а заимствованый из другой библиотечки. Я допилил символьную арифметику. Логики здесь особой нету. Компаратор, сорт-множество, и internal GCD делают 70% работы. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. а ты не пробовал адаптировать данное решение, под мной переделанную постановку задачи: авторхотя, если поставить задачу первые 20000 элементов для н = 10000 я ее спецом под свое решение подогнал ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 00:11 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNа ты не пробовал адаптировать данное решение, под мной переделанную постановку задачи: я ее спецом под свое решение подогнал ) Я оценил. Я еще не занимался скоростной оптимизацией этой задачи на своей библиотеке. Она слишком концептуальна. И прелесть рациональных чисел в том что постановка в общем случае не дает тебе возможности подменить их на double или привести к общему знаменателю в целых числах всё. А для того чтоб понять твой исходник - мне надо или сломать себе мозг или заставить тебя прокомментировать все строки. Хаскель штука хитрая и не на обывателя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 00:26 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
maytonА для того чтоб понять твой исходник - мне надо или сломать себе мозг или заставить тебя прокомментировать все строки. ок Код: sql 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. если есть вопросы по конкретным строчкам или функциям - спрашивай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 00:43 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
mayton, могу сделать такое же решение, только на си или джаве. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 00:45 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaN, в отбрасывании 19990 есть какая-то хитрость? Вообще весь код работает быстрее с отбрасыванием или нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 00:49 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=38132965&tid=1341932]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
158ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 198ms |
| total: | 436ms |

| 0 / 0 |
