|
|
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
Дано N (натуральное). Вывести список рациональных дробей в неубывающем порядке где числитель и знаменатель - целые от 1 до N. И числитель не больше знаменателя (т.е. результат дроби меньше 1.0) Вход: 5 Выход: 1/5 1/4 1/3 2/5 1/2 3/5 2/3 3/4 4/5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2013, 14:31 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
Забыл дописать "БЫСТРО!" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2013, 14:36 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
Дроби также должны быть несократимыми, судя по примеру? O(N 2 ) понятно как (хранить массив "следующих" числителей и на каждом шаге находить соответствующий минимальной дроби и увеличивать его), но, кажется, можно быстрее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2013, 15:01 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
Да. Дробь 2/4 выпадает из списка т.к. это суть 1/2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2013, 15:03 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
wadmanЗабыл дописать "БЫСТРО!" Это олимпиадная. Но в данном форуме мы можем медитировать над ней достаточно долго. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2013, 15:04 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
mayton, какие ограничения на память и скорость? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2013, 15:06 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
По учебнику N<=255. Но я решил снять ограничение для этого форума. По остальному - задачки писались для учебника в TurboPascal 7.0. Память и всё остальное - соотвественно можете выбрать исходя из этих сведений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2013, 15:11 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
На самом деле, самое "сложное" - это проверка сократимости дробей. По сравнению с этим, все остальное (построение дробей, расположение их в неубывающем порядке) - требует намного меньше затрат ресурсов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2013, 16:13 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
AndreTMНа самом деле, самое "сложное" - это проверка сократимости дробей. По сравнению с этим, все остальное (построение дробей, расположение их в неубывающем порядке) - требует намного меньше затрат ресурсов. Да. Я думал об этом. Если расположить дроби квадратной матрицей (там верхняя половина выше диагонали выходит) то часть дробей надо будет вычеркнуть из проверки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2013, 16:19 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
Я подумал так - строим матрицу разложения чисел на простые множители (даже необязательно вычислять степень сомножителя, достаточно признака того, что существует хотя бы один такой в числе), по ней легко затем находятся несократимые пары. Затем перебираем показатели числитель/знаменатель в порядке возрастания величины дроби, при этом выводя только несократимые. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2013, 16:33 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
Я тоже думал о разложении. Но недавно мне подсказали что для решения данной задачи (сокращение дроби) достаточно алгоритма Евклида для расчета НОД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2013, 17:33 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
если я правильно понял идею 13851216 то сокращать дроби не придется, т.к. все одинаковые по значению будут найдены последовательно, и можно указать самую простую из них (с наименьшим знаменателем). тот алгоритм требует O(N) памяти на всё про всё и порядка O(N) времени на одну дробь (каждый раз поиск минимальной дроби по всем делителям). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2013, 17:42 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
maytonЯ тоже думал о разложении. Но недавно мне подсказали что для решения данной задачи (сокращение дроби) достаточно алгоритма Евклида для расчета НОД.угу.. кмк, если для двух чисел - числителя и знаменателя, существует даже не НОД, а просто общий делитель, то эту дробь надо выкидывать из списка результатов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2013, 17:55 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
S.G.maytonЯ тоже думал о разложении. Но недавно мне подсказали что для решения данной задачи (сокращение дроби) достаточно алгоритма Евклида для расчета НОД.угу.. кмк, если для двух чисел - числителя и знаменателя, существует даже не НОД, а просто общий делитель, то эту дробь надо выкидывать из списка результатов. Это смотря как обходить. Я искал решение класса "конечный автомат". Чтобы обходя матрицу дробей выводит их в неубывающем порядке. Тоесть без доп. массивов и сорт. структур. Но пока чет не вышло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2013, 17:58 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
maytonДано N (натуральное). Вывести список рациональных дробей в неубывающем порядке где числитель и знаменатель - целые от 1 до N. И числитель не больше знаменателя (т.е. результат дроби меньше 1.0) Вход: 5 Выход: 1/5 1/4 1/3 2/5 1/2 3/5 2/3 3/4 4/5о. тут ленивые вычисления помогут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2013, 18:17 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
maytonТоесть без доп. массивов и сорт. структур.где ты это написал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2013, 18:25 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNmaytonТоесть без доп. массивов и сорт. структур.где ты это написал? Зачем я буду ограничивать полёт чужой мысли? Я привел постановку олимпиадной задачи. Как есть. А то что я искал это - отдельная тема. Можно искать а можно и забить. Но "ленивое решение" мне еще интреснее будет. Жду... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2013, 18:27 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. почему на форуме нету хацкельного тега срц? ( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2013, 18:37 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
maytonЖду... done. макс необходимая использумая паять(из-за сборщика) = паять под текущий результат + память под n чисел(т.е. для каждого числителя от 1-го до n). благодаря ленивости, под все знаменатели память выделять не нужно(достаточно по одному для каждого числителя). т.е. используемая память - 2*n*sizeof(Rational) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2013, 18:40 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaN, а в каком виде выводит? Просто из-за отсутствия форматирования со слешом типа "%i/%i" непонятно. И что делает пакет Data.Ratio ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2013, 18:41 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
maytonZyK_BotaN, а в каком виде выводит? Просто из-за отсутствия форматирования со слешом типа "%i/%i" непонятно. И что делает пакет Data.Ratio ?тип данных - рациональные числа. с лева от % - числитель, справа знаменатель. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2013, 18:45 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
Про [ src=haskel ] я подниму вопрос в модераторском форуме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2013, 18:52 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
maytonПро [ src=haskel ] я подниму вопрос в модераторском форуме.я пошутил. в хаскеле нечего подсвечивать. там кроме ключевых слов "modul, import, let, where, do" - нечего подсвечивать. исходник хаскеля с подсветкой синтаксиса - не отличается от обычного текста )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2013, 18:57 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
А я вспомнил. Я читал эту тему у Душкина. Но меня особо поразило что Хаскель исходник - это не исходник с каментами а текст с вкраплениями исходников. Это конечно другим ЯП не дано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2013, 19:02 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
maytonЭто конечно другим ЯП не дано.Что значит "не дано"? Литературное программирование Дональд Кнут для чего делал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2013, 19:08 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, прошу прощения. Не читал. Про литературное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2013, 19:12 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
maytonBasil A. Sidorov, прошу прощения. Не читал. Про литературное.тех в таком стиле был написан кнутом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2013, 19:20 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
mayton- это не исходник с каментами а текст с вкраплениями исходников.все гораздо проще. хаскель - сплошные дефенишины. слева имя, справа выражение. подсвечивать просто нечего. а Душкин, просто слишком уж превозносит этот хацкель. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2013, 19:22 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
Увы. Мне кроме Душкина было больше некого читать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2013, 19:27 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2013, 19:42 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
maytonBasil A. Sidorov, прошу прощения. Не читал. Про литературное.Пишем, напускаем препроцессор и получаем в одном файле исходный текст программы на паскале :), а в другом - документацию на программу. Второй файл предполагалось скармливать TeX-у :) P.S. Тех, кто собирается фыркать на "препроцессор", "два файла" и прочие детали реализации, сразу предупрежу, что "не на то дерево лаете". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2013, 19:53 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
И не собирался я фыркать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2013, 20:54 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovmaytonBasil A. Sidorov, прошу прощения. Не читал. Про литературное.Пишем, напускаем препроцессор и получаем в одном файле исходный текст программы на паскале :), а в другом - документацию на программу. Второй файл предполагалось скармливать TeX-у :) P.S. Тех, кто собирается фыркать на "препроцессор", "два файла" и прочие детали реализации, сразу предупрежу, что "не на то дерево лаете".Это Вы сейчас с кем разговариваете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2013, 21:23 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
maytonAndreTMНа самом деле, самое "сложное" - это проверка сократимости дробей. По сравнению с этим, все остальное (построение дробей, расположение их в неубывающем порядке) - требует намного меньше затрат ресурсов. Да. Я думал об этом. Если расположить дроби квадратной матрицей (там верхняя половина выше диагонали выходит) то часть дробей надо будет вычеркнуть из проверки. Если тупо в лоб , то мартица, для экономии памяти битовая. пройтись по номерам строк и столбцов, взвести в 1 пересечения где остаток от деления не равен 0 при наступании на диагональ перейти на следующую итерацию. Напечатать в виде дроби стороку и столбец матрицы со значением элемента равным 1. приблизительно так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2013, 23:08 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
Да. Я только хитрее думал. Уж коли мы всё равно сортируем и выводим в консоль неубывающую последовательность. То дубликаты такие как 1/2 и 2/4 при выводе будут идти рядышком как . 1/2 1/2 . И их можно дропать непосредственно перед выводом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2013, 23:35 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
mayton, Дубликаты( сокращения 2/4 3/6 4/12 ) уйдут сами при проверке остатка от деления. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2013, 23:42 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
ДохтаР, ок. Убедил. Значит создаём треугольную матрицу единиц. Потом в 1 проход проходим и сбрасываем в ноль все ячейки где x%y==0 А во второй проход?..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2013, 23:46 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
mayton, В принципе можно сразу печатать дроби во вложенном цикле без матриц если остаток от деления не равен 0. когда сумма счтечиков циклов( внешнего и внутреннего) равна ширине матрицы перепрыгиваем на следующую итерацию( достигли диагонали). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2013, 00:01 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
Попробую нарисовать для N=6 Получается довольна запутано. И нет яркой последовательности внутри матрицы Код: sql 1. 2. 3. 4. 5. 6. 7. После фильтрации дубликатов Код: sql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2013, 00:12 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
Яростный Мечесли я правильно понял идею 13851216 то сокращать дроби не придется, т.к. все одинаковые по значению будут найдены последовательно, и можно указать самую простую из них (с наименьшим знаменателем). тот алгоритм требует O(N) памяти на всё про всё и порядка O(N) времени на одну дробь (каждый раз поиск минимальной дроби по всем делителям).Почти. Код примерно такой: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Но первый внутренний цикл - O(N), внешний - O(N 2 ) или несущественно лучше, суммарно O(N 3 ). Кроме того, решение слишком уж "лобовое". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2013, 00:20 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
AbstractionЯростный Мечесли я правильно понял идею 13851216 то сокращать дроби не придется, т.к. все одинаковые по значению будут найдены последовательно, и можно указать самую простую из них (с наименьшим знаменателем). тот алгоритм требует O(N) памяти на всё про всё и порядка O(N) времени на одну дробь (каждый раз поиск минимальной дроби по всем делителям).Почти. Код примерно такой: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Но первый внутренний цикл - O(N), внешний - O(N 2 ) или несущественно лучше, суммарно O(N 3 ). Кроме того, решение слишком уж "лобовое".можно полный код программы, хочу протестить производительность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2013, 00:28 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
Надо полагать GCD - это greatest common divisor. ( http://en.wikipedia.org/wiki/Euclidean_algorithm) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2013, 00:36 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
maytonНадо полагать GCD - это greatest common divisor. ( http://en.wikipedia.org/wiki/Euclidean_algorithm)] http://en.wikipedia.org/wiki/Euclidean_algorithm) та я понял. просто предположил что существует полный исходник. не хотелось время тратить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2013, 00:37 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
Поиск сокращаемых дробей в матрице не дает мне покоя. Для случая с N=256 она будет выглядеть примерно так если считать ее черно-белой биткартой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2013, 01:02 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
maytonПоиск сокращаемых дробей в матрице не дает мне покоя. Для случая с N=256 она будет выглядеть примерно так если считать ее черно-белой биткартой. ничего не понял. можешь пояснить картинку? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2013, 01:08 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
maytonПопробую нарисовать для N=6 Получается довольна запутано. И нет яркой последовательности внутри матрицы Код: sql 1. 2. 3. 4. 5. 6. 7. После фильтрации дубликатов Код: sql 1. 2. 3. 4. 5. 6. 7. Лохонолся я с остатком от деления , не покрывает все варианты решения. Но но намек на GCD , натолкнул на мысть сделать наоброт. 2/3 = 2*2/3*2 =4/6 Тоже самое для 3/4=3*3/3*4=9/12 4/5=16/25 проходя по циклу от меньшего к большему путем умножения числителя и знаменателя на числитель в матрице отмечать фейковые дроби наперед. вирианты которые в последствии выводит не нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2013, 01:11 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
Ну вот самая плотная штрих-пунктирная прямая под углом 30 градусов к горизонту это пикселы с координатами (1,2),(2,4),(3,6)...(n,2*n). Я просто сделал матрицу более визуально наглядной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2013, 01:18 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
maytonНу вот самая плотная штрих-пунктирная прямая под углом 30 градусов к горизонту это пикселы с координатами (1,2),(2,4),(3,6)...(n,2*n). Я просто сделал матрицу более визуально наглядной. Они то как раз тебе и не нужны. Потому что это скращаемые дроби. Остаток от деления == 0 тебе покажет что это сокращаемая дробь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2013, 01:32 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
Да это и ежу понятно что не нужны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2013, 01:41 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaN, maytonЭто Вы сейчас с кем разговариваете?Есть люди, которые неровно дышат на мои утверждения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2013, 17:50 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#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 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNмогу сделать такое же решение, только на си или джаве. Нет. Не надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 00:51 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
maytonZyK_BotaN, в отбрасывании 19990 есть какая-то хитрость? Вообще весь код работает быстрее с отбрасыванием или нет?нет. не быстрее. меня просто интересуют последние числа. первая половина - все равно не интересна. там числитель 1, а знаменатель уменьшается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 00:57 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
maytonZyK_BotaNмогу сделать такое же решение, только на си или джаве. Нет. Не надо.а я уже было начал. ну ладно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 00:58 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNmaytonпропущено... Нет. Не надо.а я уже было начал. ну ладно но не забываем про экономию памяти. при отбрасывании, нам нужно не 20000 единиц под результат, а только 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 01:00 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNтех в таком стиле был написан кнутомИ пряником? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 03:55 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
Это называется рядами... эээ... имени Склероза. Не помню, в общем, кого. И строить можно примерно так: начинаем с . Потом промеж любой пары, у которой сумма знаменателей не больше нашего максимума, вставляем дробь сумма числителей/сумма знаменателей: . При этом не надо проверять на несократимость. Может получиться быстрее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 04:09 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
Смоляное ЧучелкоЭто называется рядами... эээ... имени Склероза. http://ru.wikipedia.org/wiki/Ряд_Фарея ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 07:37 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
tanglir, Спасибо большое. Постараюсь запомнить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 09:22 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNпервая половина - все равно не интересна. там числитель 1, а знаменатель уменьшается Положим, всё это симметрично относительно 1/2, так что если первые 1/n, то и хвост будет состоять из ровно стольки ж (n-1)/n. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 09:36 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
Смоляное ЧучелкоZyK_BotaNпервая половина - все равно не интересна. там числитель 1, а знаменатель уменьшается Положим, всё это симметрично относительно 1/2, так что если первые 1/n, то и хвост будет состоять из ровно стольки ж (n-1)/n. я не правильно сказал. не половина дробей, а первые к чисел, где к - половина от н. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 11:23 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNСмоляное ЧучелкоZyK_BotaNпервая половина - все равно не интересна. там числитель 1, а знаменатель уменьшается Положим, всё это симметрично относительно 1/2, так что если первые 1/n, то и хвост будет состоять из ровно стольки ж (n-1)/n. я не правильно сказал. не половина дробей, а первые к чисел, где к - половина от н. и заметь, для примера н = 5. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. первые элементы действительно имеют числитель 1. а вот последние два - уже разнятся знаменателями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 11:26 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
Смоляное ЧучелкоЭто называется рядами... эээ... имени Склероза. Не помню, в общем, кого. И строить можно примерно так: начинаем с . Потом промеж любой пары, у которой сумма знаменателей не больше нашего максимума, вставляем дробь сумма числителей/сумма знаменателей: . При этом не надо проверять на несократимость. Может получиться быстрее. классный метод. вроде рулит не хило. считает элементы для н = 2024 - мгновенно. вот код: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. правда сам вывод занимает время, поэтому для бенчмарка, первую строку можно поменять на: Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 11:53 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
а вот мне интересно, как в ghc реализована операция конкатенации(есть ли какие-то оптимизации в зависимости от контекста вычислений). если она реализована в лоб, то решение с мутабельными списками должно обгонять данное. ведь нам по сути нужна вставка элемента в список, а вместо этого, мне приходится их канкатенировать, так как списки иммутабельны. вернее я могу одну канкатенацию выкинуть, но она и не является накладной, так как там список состоит из одного элемента, но все же: Код: sql 1. а вот что делать с первой канкатенацией - не знаю. но есть не нулевая вероятность, что оптимизатор компилятора ghc понимает что от него хотят, и делает список мутабельным, так как тот виден только локально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 12:06 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
Если не лень, попробуй такой ещё вариант: Код: sql 1. 2. 3. 4. 5. Интересно, сильно ли повлияет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 13:08 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNа вот мне интересно, как в ghc реализована операция конкатенации(есть ли какие-то оптимизации в зависимости от контекста вычислений). вот что встретил на рсдн по данному вопросу: автор Ладно, тогда разберемся "аналитически". Ну, короче, как в принципе устроен ++? Ну, например, так. Я на Эрланге напишу, мне так проще, и в принципе один хрен. %% Вот это - достаточно понятно. concat( [], X ) -> X; %% Как, собственно, и вот это concat( [ H | T ], X ) -> [ H | concat( T, X ) ]. Как у нас будет выполняться concat( A, B) в ленивом языке? Для простоты, пусть у нас ленивые только конструкторы списка, остальное неважно. C = concat( A, B ) имеет сложность O(1) Пробежка по результату приведет к дополнительному ленивому вызову concat, который будет возвращать копию элемента списка H для каждого элемента А, и будет стоить столько же для элементов B. То есть, пробежка по С будет чуть дороже, чем пробежка по А или Б. Однако, налицо неплохой потенциал для оптимизации в ghc — компилятор может избежать задействования хипа, если выведет last use для элементов C. Это уже кое-что, не так ли? D = concat( concat( A, B ), B1 ) — само по себе тоже O(1), разумеется, это не интересно. А пробежка по D... Два накладных вызова на len( A ), один — на len( A + B ) — len( A ), и ноль на len( B1 ). Та же картина по last use для ghc. Итак, при наращивании глубины конкатенации по данной цепочке, имеем очень легкую, почти незаметную в сравнении со строгим случаем квадратичность (за счет отсутствия переливаний из памяти в память), которая будет почти незаметна на фоне обработки. Смотрим второй вариант: D = concat( B1, concat( A, B ) ) Имеем один накладной вызов при любой вложенности подобных операций конкатенации. То есть, квадратичности нет. Прикольно, не так ли? Будем проверять теорию экспериментом? взято отсюда. там на тему конкатенации идет дискусс ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 13:20 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
Смоляное ЧучелкоЕсли не лень, попробуй такой ещё вариант: Код: plaintext 1. 2. 3. 4. 5. Интересно, сильно ли повлияет. вечером погоняю с профайлером для разных случаев. например сколько потребляется памяти, если нужно найти последних 10 из 20000. а сколько для всех 20000 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 13:50 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
Общий порядок - неубывающая последовательность. Есть ли второй порядок сортировки? (судя по примеру, возрастающий числитель, если он не противоречит основному порядку) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 14:11 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNвзято отсюда. там на тему конкатенации идет дискусс сказать то сказал, а ссылку дать забыл: http://www.rsdn.ru/forum/decl/3389338.flat.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 14:11 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
maytonДано N (натуральное). Вывести список рациональных дробей в неубывающем порядке где числитель и знаменатель - целые от 1 до N. И числитель не больше знаменателя (т.е. результат дроби меньше 1.0) Вход: 5 Выход: 1/5 1/4 1/3 2/5 1/2 3/5 2/3 3/4 4/5 Меня волнует вопрос неубывающего порядка и тот факт, что все решили, будто 1/2 выводим, а 2/4 не выводим. Если порядок НЕубывающий -это равно сильно тому, что он может как расти, так идти "ровно" ;) Ошибаюсь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 14:15 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
Озверин, Меня волнует вопрос неубывающего порядка и тот факт, что все решили, будто 1/2 выводим, а 2/4 не выводим. Третье и четвёртое сообщения темы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 14:29 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
AbstractionОзверин, Меня волнует вопрос неубывающего порядка и тот факт, что все решили, будто 1/2 выводим, а 2/4 не выводим. Третье и четвёртое сообщения темы. Я их прочел, но суть слова "Неубывающая последовательность" для меня осталась загадкой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 14:32 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
Озверин, Неубывающая последовательность, все члены которой различны - в чём проблема? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 14:48 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
ОзверинМеня волнует вопрос неубывающего порядка и тот факт, что все решили, будто 1/2 выводим, а 2/4 не выводим. Если порядок НЕубывающий -это равно сильно тому, что он может как расти, так идти "ровно" ;) Ошибаюсь? Это задача из книги Федор Меньшиков - Олимпиадные задачи по программированию. Но я с тобой согласен что такая постановка где надо сокращать дроби и убирать дубли - чем-то ограничнивает скорость генерации. Давай, сделай так как будто-бы сокращение не обязательно. Поскольку я - топик стартер - то имею право взять и поменять постановку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 14:55 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
Честно сказать, давно не решал олимпиданых..и совершенно забыл всю математику, но расскажу ход своих мыслей и то, к чему я пришел: 1) Максимальное значение для множества рациональных дробей , где N-числитель, M<N - знаментель = n-1/n 2) Минимальное значение для этого же множества: 1/n Дальше, я решил построить дерево, с убывающими вершнами и убывающими ветвями: где вершины: n-1/n -> n-2/n-1 -> n-3/n-2 ->...-> 1/2 и само собой листики веток: где вершина n-1/n : n-2/n > n-3/n > ... > 1/n Посмотрел на дерево, вершины всегда убывают, листики в отдельно взятой ветви всегда убывают. Как обойти дерево, чтобы выбрать с наименьшего (1/n) до наибольшего n-1/n? В итоге(для 5, допустим) Код: plaintext 1. 2. 3. 4. Движемся со двигом: 1/n -> 1/n-1 -> 1/n-? до значения ветви с числителем вершины целое от деления (n/2) и(соответственно) знаменателем = (целое отделения(n/2)) +1 Следующий этап 1/n -> 1+1/n такое же движение Я видимо повторил чей нибудь велосипед или просто попал в логическую ловушку, но эмпирически вывел следующее правило обхода: Код: java 1. 2. 3. 4. 5. Все...ничего не сохраняю, вроде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 16:05 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
Озверин, покажи вывод скажем для N=16 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 16:19 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
mayton, 1/16 1/15 1/14 1/13 1/12 1/11 1/10 1/9 2/16 2/15 2/14 2/13 2/12 2/11 2/10 2/9 3/16 3/15 3/14 3/13 3/12 3/11 3/10 3/9 4/16 4/15 4/14 4/13 4/12 4/11 4/10 4/9 5/16 5/15 5/14 5/13 5/12 5/11 5/10 5/9 6/16 6/15 6/14 6/13 6/12 6/11 6/10 6/9 7/16 7/15 7/14 7/13 7/12 7/11 7/10 7/9 8/16 8/15 8/14 8/13 8/12 8/11 8/10 8/9 9/16 9/15 9/14 9/13 9/12 9/11 9/10 10/16 10/15 10/14 10/13 10/12 10/11 11/16 11/15 11/14 11/13 11/12 12/16 12/15 12/14 12/13 13/16 13/15 13/14 14/16 14/15 15/16 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 16:24 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
А если так? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 16:36 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
Озверин, 3/16 < 2/10 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 16:38 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
Озверинmayton, 9/10 10/16 очевидно же, что 9/10 - больше чем 10/16 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 16:47 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNОзверинmayton, 9/10 10/16 очевидно же, что 9/10 - больше чем 10/16 Да вижу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 16:57 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
maytonZyK_BotaNпропущено... очевидно же, что 9/10 - больше чем 10/16 Да вижу. а как тебе алгоритм предложенный мембером Смоляное Чучелко? по производительности рвет на порядки предложенный мной, и не требует доп памяти, кроме той что нужна для результата. для н = 2048 - посчитало мгновенно, и глазом не моргнул. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 17:01 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNа как тебе алгоритм предложенный мембером Смоляное Чучелко? по производительности рвет на порядки предложенный мной, и не требует доп памяти, кроме той что нужна для результата. для н = 2048 - посчитало мгновенно, и глазом не моргнул. Я не разбирался. Это реализация ряда Фарея? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 17:18 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
maytonZyK_BotaNа как тебе алгоритм предложенный мембером Смоляное Чучелко? по производительности рвет на порядки предложенный мной, и не требует доп памяти, кроме той что нужна для результата. для н = 2048 - посчитало мгновенно, и глазом не моргнул. Я не разбирался. Это реализация ряда Фарея?я не шарю кто такой Фарей. но алгоритм работает правильно и очень быстро ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 17:33 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNmaytonпропущено... Я не разбирался. Это реализация ряда Фарея?я не шарю кто такой Фарей. но алгоритм работает правильно и очень быстро Тыже в Хаскелях знаток? Проверь. Это оно? http://ru.wikipedia.org/wiki/%D0%A0%D1%8F%D0%B4_%D0%A4%D0%B0%D1%80%D0%B5%D1%8F ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 17:43 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
maytonZyK_BotaNпропущено... я не шарю кто такой Фарей. но алгоритм работает правильно и очень быстро Тыже в Хаскелях знаток? Проверь. Это оно? http://ru.wikipedia.org/wiki/%D0%A0%D1%8F%D0%B4_%D0%A4%D0%B0%D1%80%D0%B5%D1%8F] http://ru.wikipedia.org/wiki/%D0%A0%D1%8F%D0%B4_%D0%A4%D0%B0%D1%80%D0%B5%D1%8F ну да, если отбросить первый и последний элемент ряда, то разве это не будет результатом нашей задачи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 17:47 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
Да. Математик всех нагнул. Ну ладно. Интересно расчитывал ли на это Федор Меньшиков? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 17:52 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
maytonДа. Математик всех нагнул. Ну ладно. Интересно расчитывал ли на это Федор Меньшиков?это они умею ) всё. бросаю я хаскель, и пойду на джаве писать. не достоин я звания хаскелиста ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 17:58 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNmaytonДа. Математик всех нагнул. Ну ладно. Интересно расчитывал ли на это Федор Меньшиков?это они умею ) всё. бросаю я хаскель, и пойду на джаве писать. не достоин я звания хаскелиста ) Достоин-достоин . Расскажи лучше где в Киеве востребован Хаскелист? Или это так... хобби? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 18:14 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
maytonZyK_BotaNпропущено... это они умею ) всё. бросаю я хаскель, и пойду на джаве писать. не достоин я звания хаскелиста ) Достоин-достоин . Расскажи лучше где в Киеве востребован Хаскелист? Или это так... хобби? я в епам собеседовался, вернее даже не собеседовался, а только тестовое задание выполнял. на собеседку не пригласили. сказали что не достаточно оптимизированный алгоритм(а вторую задачу вообще не правильно понял) задачу пересказать не могу, так как в письме была просьба не разглашать. разрабатывали товарищи финансовый фреймворк для какого-то крупного банка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 18:57 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
maytonИли это так... хобби?а так да - хобби. при чем когда пишу на другом языке - очень не хватает хаскеля. понимаю, что на хаскеле писать гораздо проще, и можно делать меньше ненужных телодвижений. но когда пишу на хаскеле, то мне не хватает нормальных либ, и тут я уже понимаю, что на джаве не то что-бы проще писать, но благодаря либам - возможно. а на хаскеле - не возможно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 18:58 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
maytonДа. Математик всех нагнул. Ну ладно. Интересно расчитывал ли на это Федор Меньшиков?Осталось вернуться к условию, когда нужно пропускать и сократимые дроби... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 19:36 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
AndreTM, А вру... Ряд и так уже состоит из несократимых дробей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 19:38 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
Мда... старина Фарей выбил из под меня табуретку. Ну ладно. Пожалуй топик можно закрыть. Если у кого чего интересно - пишите. Если хотите помочь мне допилить math.* то могу добавить в со-разработчики. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 19:50 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
maytonМда... старина Фарей выбил из под меня табуретку. Ну ладно. Пожалуй топик можно закрыть. Если у кого чего интересно - пишите. Если хотите помочь мне допилить math.* то могу добавить в со-разработчики.я отпишусь по поводу бенчей по расходу памяти, для случая когда нам нужны не все элементы, а например последние 10 из 20000 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 19:52 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
maytonЕсли хотите помочь мне допилить math.* то могу добавить в со-разработчики.можешь подробней описать что и зачем? можно в личку.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 19:53 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
Я когда писал Rational хотел добавить туда кеширование факторизации числителя и знаменателя. Думал что будет актуально для сложения и вычитания Rationals. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 19:54 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
Да ничего секретного. Лет 5 назад начал писать java-библиотечку для работы с математикой. Матрицы, комплексные числа (кватернионы, октавы). Генераторы последовательностей. Простые числа, фибоначчи, e.t.c. Писал несистемно. Урывками. Сейчас после нескольких лет перерыва выложил это всё в code-google под SVN. Оно и сейчас всё недописано и нетестировано. Кругом одни "todo"-шки. Я и выложил в паблик в надежде что кто-то подхватит знамя из моих ослабевших рук. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 19:58 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
maytonЯ когда писал Rational хотел добавить туда кеширование факторизации числителя и знаменателя. Думал что будет актуально для сложения и вычитания Rationals.Мне было бы интересно. Можешь со мной делится по почте задачами. Я время найду над ними поработать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 20:04 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
AbstractionОзверин, 3/16 < 2/10 Вот черт, надо больше 20 минут и вспомнить хоть что-то ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 21:34 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
maytonОКне вижу письма на мыле )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2013, 02:32 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
А можете в итоге топика ссылку на решение?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2013, 15:44 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
Озверин, тебя интересует решение из учебника Меньшикова? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2013, 15:54 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
ОзверинА можете в итоге топика ссылку на решение?) 13860942 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2013, 17:02 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNОзверинА можете в итоге топика ссылку на решение?) 13860942 так вот.что я попытался вывести ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2013, 17:14 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
maytonОзверин, тебя интересует решение из учебника Меньшикова? если не сложно и оно не совпадает с местным решением..то конечно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2013, 17:14 |
|
||
|
Задачка с дробями.
|
|||
|---|---|---|---|
|
#18+
Да. Меньшиков предлагает 2 варианта. 1) Тема: алг. Евклида и быстрая сортировка 2) Тема: рекурсия. Идяе решения найдена в книге [Грехем] стр 141 По 2 варианту - суть ряд Фарея. Вобщем самые интересные идеи и реализации мы уже рассмотрели. Знатокам Хаскеля - респект. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2013, 17:35 |
|
||
|
|

start [/forum/topic.php?all=1&fid=16&tid=1341932]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
161ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
105ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 512ms |

| 0 / 0 |
