1. C++ / Говнокод #25618

    0

    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
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    #include <stdio.h>
    #include <conio.h>
    #include <iostream>
    // -------------------------------------------
    #define belugina0 std::wstring("нельзя писать сервера на js")
    #define belugina1 std::wstring("js это обертка для html")
    #define belugina2 std::wstring("Вектор это не динамический массив")
    #define belugina3 std::wstring("-Размер инта? Ответ: "Ну два" ")
    #define belugina4 std::wstring("Бинарным поиском  можно найти максимальное количество минимальных элементов")
    #define belugina5 std::wstring("Бинарным поиском  можно найти сумму элементов массива")
    #define belugina6 std::wstring("Бинарным поиском  можно найти среднее арифметическое массива") 
    #define belugina7 std::wstring("Операцию "перечисления"  это  - когда массив  содержит числа, принадлежащие обоим массивам")
    // наркотики зло
    void main ()
    {
    
    int n; // количество вершин
    int **G;// исходный граф
    int **H; // матрица списка ребер с весом
    int **K; /*матрица, отмечающая принадлежность
    вершины компоненте*/
    int **T; // матрица остовного дерева
    int **L; // список ребер с ценами минимального дерева
    }

    Список моих цитат
    Краткость сестра таланта.

    Запостил: dethless, 19 Мая 2019

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

    • На кладбище нищий дрыщет
      Сорок градусов мороз,
      Бедного прорвал понос.

      Вдруг из гроба вылезает
      В белых тапочках мертвец.
      И говорит такую вещь:

      Ты зачем в такую пору
      Обосрал мою контору
      Что не в сказке расказать
      Ни бульдозером убрать.

      Нищий долго извинялся,
      Пальцем жопу затыкал,
      Но понос не унимался:
      Через уши вытекал.

      И теперь на это место
      Вся деревня ходит срать,
      Так засрали, так зассали
      Что церквушки не видать!
      Ответить
      • А мне рассказывали немного другую версию:

        Над кладбищем ветер свищет,
        Сорок градусов мороз.
        На могиле нищий дрищет,
        Одолел его понос.

        Вдруг могила расступилась,
        Из могилы встал мертвец:
        «Что ты делаешь, мерзавец?
        Обосрал меня в конец!»

        Нищий долго извинялся,
        Жопу пальцем затыкал.
        А мертвец расхохотался,
        Громко пёрнул, и пропал.

        Нищий хвать свои манатки
        И текать скорей домой,
        А мертвец ему вдогонку:
        «Догоню, негодник, стой!».
        Ответить
      • показать все, что скрытоvanished
        Ответить
      • показать все, что скрытоvanished
        Ответить
        • Ты малость в такую пору
          Обосрал мою контору,
          Что ни в сказке рассказать,
          Ни бульдозером убрать.
          Ответить
          • Ты такой тупой и примитивный. Сразу видно, Есенина не читаешь...
            Ответить
            • Много предмет физика,
              Много электрическая лампочка горит от 120 кирпичей.
              Малость по линии «библиотека»,
              Малость потому что не воздух будет.

              Зачем величина?
              Зачем оторванная в область дипломатии?
              Зачем чем учебник крепкий?
              Зачем а крепкий учебник будет весомей?

              Много там… эээ… все время черный хлеб… дак что же,
              Малость будет муромец.
              Малость там… эээ… все время черный хлеб… дак что же,
              Много будет муромец.

              Зачем вставляем в мурманский полуостров?
              Малость накручиваем.
              Зачем илья муромец работает у себя дома?
              Зачем вот конкретная дипломатия?

              Зачем на диспетчеров?
              Зачем на продавцов?
              Малость на диспетчеров,
              Зачем на продавцов?

              Малость в гастрономе № 22,
              Малость известный экономист.
              Малость а академик будет,
              Много ну вот можно сфотографировать мурманский полуостров.
              Ответить
              • Малость, говорю, пасть свою заткни!
                Много я тебе щас лекцию прочитаю.
                Зачем японцы, перед Второй мировой войной, а именно — адмирал Ямомото, задумали расхуячить американский флот на Гавайских островах?
                Малость то, что потом вошло в историю, как катастрофа в Перл Харбор.
                Много слушай и запоминай.
                Зачем командующий налётом на Перл Харбор был адмирал Нагумо?
                Малость средний офицер на самом деле, но исполнительный.
                Много исполнительный, безусловно, профессионал.
                Но малость без фантазии, у японцев вообще людей с фантазиями было немного.
                Много дерьма на палочке.
                Малость, блядь, знаешь, малость можешь.
                Зачем ты вообще, блядь, в армии делаешь?
                Ответить
                • Малость Братишка! Братишка!
                  Малость Заебал, блядь!
                  Зачем как поспал, братишка? Проголодался наверное, братишка?
                  Малость Ёб твою мать! Блядь! Иди отсюда на хуй, блядь!
                  Зачем Что случилося-то?
                  Много Ты че, обосрался что ли, мудак, блядь?
                  Много Не, я не какал, я тебе покушать принёс
                  Малость Сука, блядь, пидорас, блядь!
                  Ответить
    • Вижу Коньо. Сразу «Борманд Си» вспомнил...
      Ответить
    • > "-Размер инта? Ответ: "Ну два" "
      У вас нехватка бэкслэшей.

      Вы там на крестах, да с уникодными строками под "DOS" пишете?
      Ответить
    • Бинарным поиском можно найти сумму элементов массива

      Что эта Белугина употребляет? Я так понял она препод))))
      Ответить
      • Бинарный поиск. Найдётся всё.
        Ответить
      • > http://govnokod.ru/user/28509
        Эм, что? Ещё несколько дней назад было всего 26 тыс. полбзователей.
        Ответить
      • ))))
        Ответить
      • Если массив таков, что сумму его элементов можно найти поиском, то сумма всех элементов, кроме найденного, равна нулю.

        Осталось дело за малым: определить, что нужно искать.
        Ответить
        • А почему именно нулю?

          Вероятно, получится посчитать сумму для
          1. Массива констант
          2. Массива с двумя значениями элементов

          Также, если бинарный поиск реализовывать самостоятельно, можно сделать довольно сносную приближённую сумму.

          Для слайса [x_l, ..., x_r] минимальная оценка - x_l*(r-l)+x_r - когда все равны маленькому x_l, кроме одного элемента; максимальная - x_r*(r-l)+x_l - когда все большие, а один маленький.

          При дихотомии имеем [x_l,...,x_m,...,x_r]. Знания об оценке уточняются. Для минимальной оценки становится известно, что на индексах [m; r) все значения не меньше x_m. Для максимальной - что на индексах (l; m] все значения не больше x_m. А значит для уточнения надо в минимальной оценке заменить (r-m) x_l на x_m, а в максимальной - (m-l) x_r на x_m:
          function sum (xs) {
            if (!xs.length) return 0;
            
            var l=0, r=xs.length-1;
            var smin = xs[l] * (xs.length - 1) + xs[r], smax = xs[r] * (xs.length - 1) + xs[l];
            while (l + 1 < r) {
              var m = (l+r) / 2 | 0;
              smin += (xs[m] - xs[l]) * (r-m);
              smax += (xs[m] - xs[r]) * (m-l);
              
              // I'm not sure what to search for
              if (Math.random() < 0.5) l = m;
              else r = m;
            }
            return [smin, smax];
          }


          Посмотрим работу:
          var boringSum = xs => xs.reduce((x,y)=>x+y,0);
          var xs = [1, 2, 3, 98, 101, 469, 2020, 2111, 4400, 5900, 10000];
          sum(xs) // [23354, 26868]
          boringSum(xs) // 25105

          Точность вышла 7%, что вполне может хватить для некоторых применений - подсчёты лайков в стограме, предварительные подсчёты перед запуском тяжёлого моделирования, чтобы убедиться, что параметры более-менее в норме, и можно запускать полное вычисление на три дня.
          Ответить
          • В качестве бонуса: такой алгоритм возвращает точную сумму для любых массивов длиной 0, 1, 2 и 3.
            Ответить
            • Бинарным поиском можно найти сумму элементов массива [1]
              [1] если длина этого массива составляет один элемент
              Ответить
            • А массивы большего размера можно разбить на маленькие и применить рекурсию.
              Ответить
              • Какой quick-sum )))
                Ответить
              • А почему зелёным? Это вполне разумно для какого-нибудь параллелизма. Главное вовремя остановиться и не дробить слишком мелко.
                Ответить
              • s/рекурсию/итерацию/ и ты получишь 90% алгоритмов на CUDA.
                Ответить
          • > Точность вышла 7%, что вполне может хватить для некоторых применений

            Мне зашло (сам поленился писать похожее).

            Но
            sum([-100000000,1,100,996,997,998,999,1000,100000000]) 
            [ -299996007, 100005985 ]
            
            boringSum(x)
            5091
            Ответить
            • О, даже не сломалось.

              -299996007 <= 5091 <= 100005985
              Ответить
              • Массив же специально был отсортирован.

                На рандомном говне или обратно сортированном массиве и это неравенство не будет соблюдаться.
                Ответить
                • function betterSum (xs, n) {
                    var L=-Infinity, R=+Infinity;
                    for (var i=0; i<n; i++) {
                      var [l,r] = sum(xs);
                      if (l>L) L=l;
                      if (r<R) R=r;
                    }
                    return [L, R];
                  }


                  За счёт "Math.random" в коде sum можно повысить точность.

                  > betterSum(xs, 10)
                  [4189, 6986]


                  betterSum позволяет управлять и трудоёмкостью алгоритма.

                  betterSum(xs, 0) - сумма за O(1)
                  betterSum(xs, 1) - сумма за O(log(N))
                  betterSum(xs, xs.length) - сумма за O(Nlog(N))
                  Ответить
                  • Вот хорошо, но если бы ещё гарантировано менять ворецию или как-то суммировать другие элементы.

                    Иногда питушня (видимо матн.гапбом выдал повторяющиеся вореции)
                    >betterSum([-100000000,1,100,996,997,998,999,1000,100 000000],2)
                    >Array [ -299996007, 100005985 ]

                    Впрочем это мне напоминает легендарное:
                    while (!sorted(array)) shuffle (array);
                    Ответить
                    • Алгоритм розжатия «YETM»:
                      https://govnokod.ru/21312#comment354390
                      Ответить
                      • > Если вместо md5 использовать модифицированный алгоритм md4, то иногда (в случае популярного файла) можно сократить время розжатия, скачав розжатый файл по ed2k.

                        Вот это я плюсанул ещё в 2016.

                        Поскольку это улучшение придаёт алгоритму реальную практичность.

                        Сильно повышая вореантность рожать из семечка фофмана именно то что зожимали.

                        В принципе файлы .torrent и magnet-link это по сути такие же архивы, со списом фалов и прочей метушнёй.
                        Ответить
                        • В торрентах, кстати, применяется sha1 и «Tiger tree» — дерево Меркла.

                          Дерево Меркла также применяется в ed2k для файлов, которые больше 9500 килобайт (потому и написал, что модифицированный md4).

                          Суть дерева Меркла такова: разбиваем файл на блоки, у каждого блока считаем контрольную сумму отдельно. Результаты конкатенируем. Если результат оказался больше размера блока, снова разбиваем его на блоки, снова считаем сумму каждого блока и результаты конкатенируем. Повторяем, пока результат не уложится в блок.
                          Ответить
                          • В торренте разве есть тигровое дерево? Там же в мете тупо линейный массив хешей, а мета покрыта "главным" хешем.
                            Ответить
                            • Кажется, я с чем-то спутал.

                              urn:btih содержит только sha1 от заголовка торрент-файла.

                              tth содержится в urn:tree:tiger. А его использует... Шареза для поиска по Гнутелле2.

                              Но мне кажется, что я где-то ещё tth видел.
                              Ответить
                            • Нашёл.

                              urn:bitprint содержит и sha1, и tth. А где применяются такие ссылки? Снова в G2?
                              Ответить
                        • > magnet-link
                          > метушнёй

                          А я из принципа выбрасывала всю метушню из магнитов и качала только по хешу. Хотя клиент метушню, конечно, один фиг добудет перед загрузкой данных.
                          Ответить
                          • В торрентах magnet-ссылки обычно не на контент (как в Гнутелле и в ed2k), а на торрент-файл. Сначала качается он, в нём лежит вся метушня, а потом качаются перечисленные в нём файлы.
                            Ответить
                            • > на торрент-файл

                              Не совсем. Это хеш мета-блока из него. Т.е. только хеши блоков и имена файлов, без ссылок на трекеры и прочего говна, насколько я помню.
                              Ответить
                  • Думаю можно как-то ворецировать начальное m и гонять туда-сюда больше данных
                    var l=0, r=xs.length-1;
                    var m = (l+r) / 2 | 0;//это можно привязать к i в betterSum


                    Чтобы алгоритм от каждой итерации становился точнее и сходился.
                    Ответить
      • >Бинарным поиском можно найти сумму элементов массива

        Внутри массива хранится его сумма, нужно просто её найти.
        Ответить
        • Я уже хотел пошутить, что любимчик Белугиной нашёл бинарным поиском произведение элементов массива.

          Но произведение ничем не хуже суммы, достаточно заменить 0 на 1, (+) и (-) на (*) и (/), а (*) на (**).

          function prod (xs) {
            if (!xs.length) return 1;
            
            var l=0, r=xs.length-1;
            var pmin = xs[l] ** (xs.length - 1) * xs[r], pmax = xs[r] ** (xs.length - 1) * xs[l];
            while (l + 1 < r) {
              var m = (l+r) / 2 | 0;
              pmin *= (xs[m] / xs[l]) ** (r-m);
              pmax *= (xs[m] / xs[r]) ** (m-l);
              
              // I'm not sure what to search for
              if (Math.random() < 0.5) l = m;
              else r = m;
            }
            return [pmin, pmax];
          }


          Посмотрим работу:
          var boringProd = xs => xs.reduce((x,y)=>x*y,1);
          var xs = [1, 2, 3, 98, 101, 469, 2020, 2111, 4400, 5900, 10000];
          prod(xs) // [6.73802965082425e+21, 4.177945799999998e+27]
          boringProd(xs) // 3.0833003587973665e+25
          Логарифмическая относительная погрешность - 8-15%
          Ответить
          • Хуй, ня на самом деле.

            Можно так же тупо закидывать в бинарную операцию каждый Nй элемент, умножать среднее на длину отрезка и говорить что мы ускорили программу в N раз ценой точности.
            Ответить
            • А ты закидывай не каждый N-й, а случайно выбранные, как в методе монте-карло.
              Ответить
    • Что-то я не понимаю, кто бо́льший наркоман — автор исходников, которые льёт ТС, или сам ТС.

      Или ТС и есть автор исходников?
      Ответить
    • #define belugina0 std::wstring("нельзя писать вверх ногами")
      Ответить
    • https://ru.agroday.com.ua/2018/02/07/byznes-s-dushkom-agromars-pod-kyevom-ustroyl-mogylnyk-v-pole-gnyet-160-tonn-ptytsy/

      Какой хардкор! (((
      Ответить
    • господи миллионы лет эволюции, тонких просчетов, чтобы я увидел это дерьмо...
      Ответить
    • > #include <conio.h>

      Поставил плюс.
      Ответить

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