1. Pascal / Говнокод #8602

    +93

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    function det5(var a:atab):double;
    {FUNKCIYA VYCHISLYAET OPREDELITEL MATRITSY 5-go PORYADKA a}
    begin
    det5:=
    +a[1,1]*a[2,2]*a[3,3]*a[4,4]*a[5,5]-a[1,2]*a[2,1]*a[3,3]*a[4,4]*a[5,5]
    +a[1,3]*a[2,1]*a[3,2]*a[4,4]*a[5,5]-a[1,1]*a[2,3]*a[3,2]*a[4,4]*a[5,5]
    -a[1,3]*a[2,2]*a[3,1]*a[4,4]*a[5,5]+a[1,2]*a[2,3]*a[3,1]*a[4,4]*a[5,5]
    -a[1,4]*a[2,1]*a[3,2]*a[4,3]*a[5,5]+a[1,1]*a[2,4]*a[3,2]*a[4,3]*a[5,5]
    -a[1,1]*a[2,2]*a[3,4]*a[4,3]*a[5,5]+a[1,4]*a[2,2]*a[3,1]*a[4,3]*a[5,5]
    -a[1,2]*a[2,4]*a[3,1]*a[4,3]*a[5,5]+a[1,2]*a[2,1]*a[3,4]*a[4,3]*a[5,5]
    -a[1,4]*a[2,3]*a[3,1]*a[4,2]*a[5,5]+a[1,3]*a[2,4]*a[3,1]*a[4,2]*a[5,5]
    .............................................
    end;

    http://bbi-math.narod.ru/rosenbrock/rosenbrock.html

    Запостил: dotnetdeveloper, 22 Ноября 2011

    Комментарии (75) RSS

    • Неоптимально.
      Ответить
    • школота, лаба, было, уныло.
      все.
      Ответить
    • а вот теперь загадка: как написать проще? единственное что можно - инверсировать вторую часть вычислений, так как по сути они зеркальное отражение первых, больше думаю никак не оптимизировать
      Ответить
      • Почитать учебник по линейной алгебре для начала
        Ответить
      • Приведение матрицы к треугольному виду? Не, не слышал!=)
        Ответить
        • Это медленнее.
          Ответить
          • чё?
            Ответить
            • Говорит - писать медленно. Завтра сдавать.
              Ответить
              • А я вот задумался. Может и вправду - треугольник для маленьких размеров не оправдан?
                Понятно, что 120 слагаемых по 4 умножения считать не стоит, но можно это записать чуток пооптимальнее.
                Ответить
                • Можно рекурсивно по минорам, конечно не ахти (хотя бы переполнение), но вроде алгоритч чуть проще треугольника.
                  Ответить
                  • Минорами 205 умножений (лучше пока не могу).
                    Треугольником 54 умножения и 10 делений, ну и ещё выбор максимального элемента.
                    Ответить
                    • А, не, треугольником можно в 34 умножения и 10 делений.
                      Короче, лобовой метод сосёт.
                      Ответить
                      • > лобовой метод сосёт
                        Экспоненциальный рост такой экпоненциальный
                        Ответить
                        • Ну я думал, он хотя бы для 5х5 настолько сосать не будет.
                          Ответить
                • Можно рекурсивно по минорам, конечно не ахти (хотя бы переполнение), но вроде алгоритч чуть проще треугольника.
                  Ответить
                  • я по два раза не повторяю
                    я по два раза не повторяю
                    Ответить
                  • Думаете, что можно рекурсивно по минорам, конечно не ахти (хотя бы переполнение), но вроде алгоритч чуть проще треугольника?
                    Ответить
                    • Лень писать комментарий, да?
                      Ответить
                    • Эк Тараса сплющило.
                      Ответить
                    • с===3 Баня там, говно. Зачем на правильные личности говнокода наезжаешь? Я даже себе такого не позволяю.
                      Ответить
    • Транслит. Прямо беда с людьми, которые не могут нормально сделать локаль.
      Ответить
      • На лабе нужно делать лабу, а не локаль. Ещё лучше знать минимальный технический английский.
        Ответить
        • Про английский - согласен. Про локаль - нет, но слишком мало исходных данных.
          Ответить
    • {PROCEDURA DLYA NAHOZHDENIYA dy/dt
      f[i] - proizvodnye dy[i]/dt,
      SJUDA VCTAVITE SVOI URAVNENIYA

      SLEDI ZA PEREDACHEI ZNACHENIJ ! !

      }
      Ответить
    • Ну а какие студенты сейчас учатся? Общее решение не для них, лучше напишут штук 20 частных.
      Ответить
      • Pascal++, просто шаблон раскрылся...
        Ответить
        • Pascal++ - это Ада.
          Ответить
          • лолд
            Ответить
          • Ждём Ада++ или хотя бы Pascal#
            Ответить
            • петросяны
              всяки крестики-черточки -- против паскальной идеи
              Ответить
              • т.е. Ada -> Bada -> Cada -> Dada -> ... -> Zada ?
                Ответить
                • Pascal
                  Rascal
                  Modula 2
                  Ответить
                  • Placal
                    Ответить
                  • Hascal
                    Может Вирт одумается и пойдёт в сторону ФП?
                    Ответить
                    • "Языки Вирта": Алгола-60, Паскаль, Модулу-2, Оберон и Оберон2
                      Развитие этой линейки паскалоподобных языков шло с каждым новым языком - к упрощению.
                      Это следствие из его главного "постулата": «Делай просто, насколько возможно, но не проще этого».

                      По этому Haskell ему не понравится, если посмотреть его функционально-математический не humanfrendly синтаксис.

                      Вирт выразил своё негодование по поводу Ады и Delphi, тк они все время усложняются и теряет свою простоту и стройность.
                      Ответить
                    • Когда уже эта питушинная императивщина пойдет лесом из мейнстрима? Функциональные языки лучше буквально всем. Что ещё может быть нужно мейнстриму?
                      Макаки, которых долго обучать ФЯП? Макаки не нужны. Предлагаю их всех уволить или отправить в сопутствующие или не мейнстримные области.
                      Ответить
                      • Нас посетил сам ВСЛ?
                        Ответить
                      • > Функциональные языки лучше буквально всем
                        Они работают медленнее при выполнении на одном-двух ядрах и потребляют значительно больше памяти, чем c++ аналоги.
                        Ответить
                        • Не используй функциональные языки для задач, для которых они не подходят. Мы то говорим про больший сегмент мейнстрима, где они подходят.
                          Ответить
                          • There is not free lunch.
                            Я сам не фанат сверхбыстрых вычислений, я уверен, что корректная, стабильная и удобная работа приложения важнее производительности.

                            Взять хотя бы Python. В среднем он существеннее медленнее многих функциональных языков. Но на нём написано много отличного софта, тормознутости которого я лично не замечаю. Я лично не замечаю тормозов в работе emerge или yum, их скорость работы меня вполне устраивает.

                            А вот тормознутость maven меня бесит. Я уверен, что он медленно работает либо из-за кривой архитектуры, либо из-за кривых рук наших CMщиков. Причём первое более вероятно.

                            Пусть фанаты c++ бьют себя пяткой в грудь и обвиняют ФЯП в тормознутости и огромном потреблении памяти. Я уверен, что бенефит от правильного алгоритма значительно важнее бенефита от более быстрой среды выполнения.
                            Ответить
                            • P.S. Сейчас планка памяти в 4GB стоит примерно 700 рублей, т.е. значительно дешевле одного дня работы квалифицированного программиста.
                              Ответить
                              • А миллион планок? Чтобы каждому пользователю?
                                Ответить
                                • Тарас прав. И дело даже не в памяти.

                                  >стабильная и удобная работа приложения важнее производительности.

                                  Расскажи это девам x264.
                                  http://x264dev.multimedia.cx/archives/360
                                  Ответить
                                  • Да, если приложение тормозит так, что работать с ним становится невозможно и бенчмарки показывают, что причина - в выбранном языке, то его нужно переписать. Если речь изначально идёт о сверхбыстрых вычислениях на ограниченном железе - в топку Python и Haskell, пишем на сях(++). Тут я полностью согласен.
                                    Ответить

                                    • After a full 6 hours, 8 frames had encoded. Yes, at this rate, it would take a full two weeks to encode 10 seconds of HD video. On a Core i7. This is not merely slow; this is over 1000 times slower than x264 on “placebo” mode. This is so slow that it is not merely impractical; it is impossible to even test. This encoder is apparently designed for some sort of hypothetical future computer from space. And word from other developers is that the Intel proposal is even slower.

                                      >пишем на сях(++)
                                      Снова мимо.
                                      http://x264dev.multimedia.cx/archives/201
                                      http://x264dev.multimedia.cx/archives/149
                                      http://x264dev.multimedia.cx/archives/8

                                      Ответить
                                    • Конечно простите за tltr, но я не могу не удержаться от цитирования умного человека.
                                      That’s about 3 kilobytes of assembly functions… which are run a few times each at the end of every single call. Since the total amount of code that ends up calling can well exceed 32 kilobytes, every single time our RD calls finish, we evict 1-2 kilobytes of data from the instruction cache.

                                      If we look at the code, we find that the SSD functions are completely unrolled; rolling them up saves a great deal of binary size and actually increases performance, despite checkasm’s benching feature telling us the functions got slower: because in real situations, the cost of high code size is greater than the cost of the few instructions involved in loop overhead.


                                      К вопросу о том, что циклы понижают производительность.
                                      Ответить
                                      • > простите за tltr
                                        Не, блог интересный, почитаю на досуге.
                                        Ответить
                                        • Блог отличный, это факт.
                                          Я его раньше до дыр зачитивал.
                                          Очень жаль, что Джейсон больше не графоманит.
                                          Ответить
                              • В таком случае пусть этот квалифицированный программист в какой-нибудь день вместо работы купит по 4GB плашке каждому пользователю его программы.
                                Ответить
                                • Илитный софт не для нищебродов!
                                  С играми, вроде как, пока прокатывает. Одна из причин, кстати, почему ПК лучше, чем х-ящик.
                                  Ответить
                                • иди отсюда нищеброд. тебе хватит 256 мб памяти с bash из Питух ОС
                                  Ответить
                      • Когда уже эта питушинная братия пойдет нахуй с говнокода? Что ещё может быть нужно говнокоду?
                        Унылые хххГумно которые учат новые слова? хххГумно не нужны. Предлагаю их всех забанить или отправить на башорг.
                        Ответить
        • Просто разорвался.
          Ответить
    • показать все, что скрытоvanished
      Ответить

    Добавить комментарий