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

    +2

    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
    int f6(int* a,int k, double& min, int& n, int& count) {
    	int i;
    	min = a[0];//8
    	n = 0;
    	count = 0;
    	for (i = 0; i < k; i++) {
    		if (a[i] == 0) {
    			count += 1;
    		}
    		if (abs(10-abs(a[i])) < abs(min)) {
    			min = a[i];
    			n = i;
    		}
    	}
    	return 0;
    }

    Помогите!!Пожалуйста!!Надо найти ближайший элемент к 10ти и его номер, почему не работает??

    Запостил: vanya_goy, 18 Января 2022

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

    • интересненько...
      Ответить
    • Что делают строчки 10 и 11? Где-то там должна быть разгадка.
      Ответить
      • да неужели....
        Ответить
        • Разгадка в том, что означает переменная min. Что-то мне подсказывает, что в строчках 10 и 11 её смысл разный.
          Ответить
          • возможно мы по разному смотрим на вещи)) честно, я не понимаю
            Ответить
            • Нужно объяснить словами, для чего нам переменная min. В ней хранится минимальное расстояние между элементом и десяткой или само значение ближайшего к десятке элемента?
              Ответить
              • само значение
                Ответить
                • Тогда внимательно смотрим на строчку 10. Сравниваем левую часть неравенства и правую.
                  Ответить
              • странно было бы хранить минимальное расстрояние в double)
                Ответить
                • Тут вообще первое впечатление, что функцию сначала писали для другой задачи, потом переделывали под текущую задачу, но переделали не всё.
                  Ответить
                  • так и было
                    тут 50 однотипных задач, мозг уже не соображает
                    Ответить
    • короче пацаны, щас решу, скину правильный вариант
      кринж...................
      Ответить
    • if (abs(10-a[i]) < abs(10-min))
      работает
      обнял, приподнял
      спасибо!!!!
      Ответить
      • Да не, хрень это. у тебя там переполнение может быть. Например если у тебя int 32-битный two's complement, то тогда принимает занчения в диапазоне от -2147483648 до 2147483647 и допустим если a[i] равен значению -2147483648 то тогда 10 - -2147483648 приведет к переполнению знакового целого, а это UB.
        Ответить
        • https://wandbox.org/permlink/kY0EM1HTSf5FWlyk вот где-то примерно так надо делать
          Ответить
          • А в «С» abs для целочисленных в стандартную библиотеку не завезли?
            Ответить
            • В "C" есть такое
              #include <stdlib.h>
              
              int abs(int j);
              long int labs(long int j);
              long long int llabs(long long int j);
              
              #include <inttypes.h>
              intmax_t imaxabs(intmax_t j);


              Но это не сработает с каким-нибудь "__int128" https://gcc.gnu.org/onlinedocs/gcc/_005f_005fint128.html

              Макрохуйнюшка с тернарником оказывается универсальней всяких там стандартных библиотек
              Ответить
              • Можно вот так на "GNU C" реализовать
                #define MY_CMP_F(a) ({(a) >= 0;})
                #define MY_NEG_F(a) ({-(a);})
                
                #define MY_ABS_F(a, cmp_func, neg_func) \
                ({ \
                  typeof(a) MY_ABS = a; \
                  (cmp_func(MY_ABS) ? MY_ABS : neg_func(MY_ABS)); \
                })
                
                #define MY_REAL_ABS_F(a) MY_ABS_F(a,MY_CMP_F,MY_NEG_F)


                Можно кастомный компаратор делать!
                Ответить
                • О, загадка для пирдоликов: какой знак у числа, которое вернул abs?
                  Ответить
                  • Из мана "abs":
                    > Trying to take the absolute value of the most negative integer is not defined.
                    Ответить
                    • Ага, в реальности может быть что-то вроде
                      int x = abs(INT_MIN);
                      printf("%d", x);
                      if (x < 0) {
                          printf("negative");
                      } else {
                          printf("non-negative");
                      }

                      > -2147483648
                      > non-negative

                      inb4: C и кресты сосут, у них даже модуль нормально не работает.
                      У джавы, интересно, что в таком случае? Исключение?
                      Ответить
                      • Парадокс числа Тараса.
                        Ответить
                      • Math.abs(Integer.MIN_VALUE) == -2147483648

                        и никаких исключений

                        Но справедливости ради: в доке к ``abs`` в джаве про это написино.

                        Джавушки конечно не самые умные программисты, но всё таки про количество бит в четырёх байтах и о доп коде они имеют представление на уровне информатики за 11-й класс, все таки они не ПХПшники
                        Ответить
                        • А питонисты?
                          Ответить
                          • А питонисты разные бывают очень.

                            Например Гост -- питонист (не в том смысле, что это его основной язык, а в том, что он его знает, и пользуется по собственному желанию)

                            С другой стороны очень много школолы изучает питон
                            Ответить
                            • Я к тому, что там bigint встроен, и о переполнении целого питуха питонист может долго не задумываться.
                              Ответить
                        • Модуль возвращает отрицательное значение? Охуенно.
                          Ответить
                          • Но ты же сам говорил, что надо всегда доку читать для любой функции (профдеформация крестобляди)

                            Note that if the argument is equal to the value of Integer.MIN_VALUE, the most negative representable int value, the result is that same value, which is negative.

                            https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#abs-int-
                            Ответить
                            • Вот из-за такой хуйни и приходится читать доку...

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

                              Именно поэтому я за исключение. А то потом этот отрицательный модуль в какую-нибудь уязвимость эволюционирует.

                              В конце-концов деление на 0 возвращает исключение и все привыкли. Хотя можно было бы просто вернуть INT_MAX/INT_MIN в зависимости от знака и задокументировать.
                              Ответить
                              • > Хотя можно было бы просто вернуть INT_MAX.
                                или NaN (в JS наприер)

                                Всё таки деление на ноль уходит корнями в железное исключение, которое кидал процессор (так было исторически) а на переполнения ему пофиг.

                                Но я согласен, что исключение лучше: причем если в С++ нам нужен суперперформанс и совместимость с няшной, то в джаве нам этого точно не нужно, и вполне нормально было бы кинуть исключение.

                                вот как .net
                                Ответить
                                • > которое кидал процессор

                                  А ведь мог и не кидать... И стандарт такую реализацию вполне допускает.

                                  > пирфоманс

                                  Современные реализации исключений не портят пирфоманс если ты их не кидаешь. Хватит уже насиловать труп 32-битной венды...
                                  Ответить
                                  • >А ведь мог и не кидать..
                                    Я не всегда понимаю по какой причине выбрана конкретная стратегия обработки ошибок.

                                    К неймингу и кешингу я бы добавил обработку ошибок:)

                                    >Современные реализации исключений не портят пирфоманс если ты их не кидаешь.

                                    Дык а время на проверку что там за значение получится?
                                    Ответить
                                    • > время на проверку

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

                                      Ну или проц мог бы кинуть аппаратное исключение как при делении на 0 (кресты с такими исключениями, конечно, не работают, но в теории рантайм мог бы обрабатывать какие-то из них не раскрывая эту деталь реализации для программиста и делая вид, что там просто была проверка).
                                      Ответить
                                      • Для второго пункта надо усложнять проц же и вводить понятие знаковово и беззнаковово сложения

                                        С другой стороны, для сдвигов же эта хуйня врод есть?

                                        А еще вроде отдельные инструкции для сложения сайн и ансайн есть у MIPS..
                                        Ответить
                                        • > вводить понятие знаковово и беззнаковово сложения

                                          У интела даже инструкция "into" была чтобы быстро проверять переполнение после знаковых операций... Но не прижилась.
                                          Ответить
                                          • Вообще говоря и правда говно: задачу спихнули на разработчиков ЯП, и решили ее множество раз

                                            А могли бы решить один раз, на уровне железа
                                            Ответить
                                            • > задачу спихнули на разработчиков ЯП

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

                                                А ещё printf, который в завимости от шаблонов может вытаскивать аргументы из обычного стека и из стека FPU, так что может получиться питушня.
                                                Ответить
                                                • > в компиляторе парой мувов

                                                  Тормозить же будет шопиздец...

                                                  И в общем-то эта проблема вылезает только если ты идёшь на тёмную сторону и юзаешь reinterpret_cast или pragma pack. В прикладном коде надо очень постараться, чтобы её словить.
                                                  Ответить
                                                  • Иканус имел ввиду писателей компиляторов конечно.
                                                    Рандомному питуху думать про это не надо, за нево компилятор все выровняит
                                                    Ответить
                                                • Доступ к невыровненной памяти вообще говоря харам

                                                  Нормальные процы сразу кидают исключение, а x86 наказывает нехилым пенальти со времен XT еще (когда шина стала два байта)
                                                  Ответить
                                                • > вытаскивать аргументы

                                                  Он их туда ещё и писать может...
                                                  Ответить
                                                  • Зато printf это одна из мощнейшних тулов сишки.

                                                    Просто предсьавте, что у вас нету pritnf
                                                    Ответить
                                                    • > Просто предсьавте, что у вас нету pritnf

                                                      У меня в контроллерах вполне может не быть никакого "printf".
                                                      Ответить
                                                      • Вот у тебя есть поинтер и строка. Выведи мне на сосноль сообщение

                                                        Invalid memory at address 0xDEADBEEF (это поинтер), error: (тут строка)

                                                        без printf.

                                                        Кажется, это очень скучное и заёбное занятие
                                                        Ответить
                                                        • https://ideone.com/18FCJD
                                                          Ответить
                                                          • Предлагаю сразу написать так
                                                            puts("Invalid memory at address 0xDEADBEEF (это поинтер), error: (тут строка)")
                                                            Ответить
                                                        • #define S(x) fputs(x, stdout)
                                                          
                                                          #define H(x) fprint_ptr_hex(x, stdout)
                                                          // нужно только реализовать fprint_ptr_hex() но это достаточно легко и банально делается
                                                          
                                                          S("Invalid memory at address ");H(ptr);S(", error: ");S(str);
                                                          Ответить
                                  • > Современные реализации исключений не портят пирфоманс если ты их не кидаешь. Хватит уже насиловать труп 32-битной венды...

                                    Любая реализация исключений требует создание некоторой поебени, которая бы проверяла, а не бросаем ли мы тут исключение. На эту хуйню с проверкой тратятся такты, а это уже порча пирфоманса. Компиляторы не умеют пока достаточно эффективно что-то там доказывать, особенно если речь о том, что исключение может бросать какая-то библиотека, которая не знает, что передаваемые в нее хуйни к исключениям 100% не приводят, это можно было б решить при LTO, если какая-то хуевина заинлайнится, но с динамическими либами такой трюк не прокатывает т.к. хуй знает какой код какую хуйню там вызовет. Можно конечно сделать отдельные вореанты функций, которые не делают исключений, но это опять уже какие-то говнокомпромиссы, в целом исключение это не бесплатный механизм.

                                    У меня в контроллерах никаких "исключений как в крестоговне" нет.
                                    Ответить
                                    • > Любая реализация исключений требует создание некоторой поебени, которая бы проверяла, а не бросаем ли мы тут исключение.

                                      Вообще говоря, исключение хуево еще в том смысле, что оно требует некий порядок исполнения хуйней. Допустим есть две функции foo1() и foo2(), и очередность их вызова вообще неважна, и если я вызову foo1() а потом foo2() или сначала foo2() и потом foo1() то разницы нет нихуя. И умный компилятор может заинлайнить обе эти функции, и если они реально никак не зависят друг от друга и не мешают друг другу, компилятор может после заинлайнивания попереставлять инструкции чтобы равномерней загрузить конвейер. Да и вообще, обе эти функции могут читать один массив и чето делать, грубо говоря

                                      void foo1()
                                      {
                                        for (size_t i = 0; i < 100; i++)
                                        {
                                          out1[i] = foo1_p(in[i]);
                                        }
                                      }
                                      
                                      
                                      void foo2()
                                      {
                                        for (size_t i = 0; i < 100; i++)
                                        {
                                          out2[i] = foo2_p(in[i]);
                                        }
                                      }


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

                                  К слову, оно там не только при делении на 0. Просто в высокоуровневых языках очень редко дают полноценно поюзать инструкцию деления, поэтому только 0 становится особым случаем.
                                  Ответить
                                  • был еще FPU Error Interrupt :)

                                    а когда еще можно лажануться с делением?
                                    Ответить
                                    • Поделить 2**32 на 1, к примеру.
                                      Ответить
                                      • Делить инструксией div
                                        Ответить
                                        • плавающие питухи не нужны

                                          Деды как-то без FPU жили, а MS-DOS написали
                                          Ответить
                                          • Кстати, про FPU есть байка, описанная кажется в какой-то книжке по настройке перформанса юникс.

                                            Начальство хотело купить сервер, и выбрало самый дорогой, с максимальным числом FLOPS за ахулион

                                            Ну заебись, только на том сервере не было ни единой программы, которая использовала бы плавающую точку
                                            Ответить
                                        • > Делить инструксией div
                                          asm("div %%rcx" : : "d"(1), "a"(0), "c"(1));
                                          Тут правда 2**64 / 1, но не суть.
                                          Ответить
                                      • 2**32/2**15 тоже навернётся, если используется div с 32-битным делимым. И 2**17/1 тоже. Поэтому деление в рантайме нужно реализовывать не одной инструкцией div, а более сложным куском кода.
                                        Ответить
                                        • > а более сложным куском кода

                                          Там ещё джва стула: отрицательный остаток (симметричное округление к нулю) или положительный остаток (округление вниз). Сишка, конечно же, не выбрала ни одного.

                                          З.Ы. Хм, в С99 описано что к нулю...
                                          Ответить
                                          • > в С99 описано что к нулю

                                            А вот в c++98 оно таки было implementation defined. Так что память у меня всё-таки работает.
                                            Ответить
                                            • Когда ты последний раз видел pre c99?
                                              BC 3? VS C++6.0?
                                              Ответить
                                              • В индии местных студентов учат на Borland C++ 4.5
                                                Это, блядь, не шутка. Каждую весну и осень на форумы случается набег студентоты с неработающими лабами по С и С++, написанные на нестандартном пиздеце.
                                                Ответить
                                                • > нестандартном
                                                  Какой снобизм !!!
                                                  Ответить
                                                • стесняюсь спросить, на чем они ее запускают. Стопудово она не заведется на современной ОС
                                                  Ответить
                                                • > В индии местных студентов учат на Borland C++ 4.5

                                                  Тоже мне новость. В ВУЗ-ах постсовка до сих пор учат писать всякую хуйню на TASM под DOS. Можешь посмотреть темы на каком-нибудь киберфоруме и прочих таких говнофорумах, куда студенты со своими лабами набигают
                                                  Ответить
                                                  • нужно , пожалуйста
                                                    мужики выручайте

                                                    Друзья, пожалуйста! Нужно только в С++, пожалуйста
                                                    Друзья! Выполните, пожалуйста, программирование по Mathcad!

                                                    Очень нужно пожалуйста пожалуйста

                                                    Друзья, помогите пожалуйста с написанием скрипта. - ОЧЕНЬ НАДО!
                                                    Ответить
                                              • В VS 2013.

                                                https://arstechnica.com/information-technology/2013/06/c99-acknowledged-at-last-as-microsoft-lays-out-its-path-to-c14/
                                                Ответить
                                          • С остатком ещё какая-то фигня на разных процессорах. На каждой новой платформе нужно выяснять, как работает div.
                                            Ответить
                            • дотнет кидает исключеие, за что ему большое человеческое спасибо
                              Unhandled Exception: System.OverflowException: Negating the minimum value of a twos complement number is invalid.
                              Ответить
                              • > за что ему большое человеческое спасибо

                                Надеюсь это сарказм.
                                Ответить
                              • Environment.TickCount через каждые 24,9 дней возвращает Int32.MinValue, который скормится Math.Abs, который резонно выкинет исключение OverflowException.

                                пеш Рапбом() кидает исключеие, за что ему большое человеческое спасибо
                                public Random() 
                                        : this(Environment.TickCount) {
                                      }
                                
                                    public Random(int Seed) {
                                        int ii;
                                        int mj, mk;
                                    
                                        //Initialize our Seed array.
                                        //This algorithm comes from Numerical Recipes in C (2nd Ed.)
                                        mj = MSEED - Math.Abs(Seed);


                                Бамп отсосу шарпомразей!
                                Ответить
                                • Нахуй им вообще знаковый tick count? От джавы унаследовали?
                                  Ответить
                                  • > От джавы унаследовали?
                                    Да. Там же изначально всё ворованное.
                                    Ответить
                                  • а нахуй он int, а не Long?
                                    Ответить
                                    • >а нахуй он int, а не Long?

                                      Я хотел было написать что так сделали йажа.итiл.Гапбом, но там 1опg
                                      /**
                                           * Creates a new random number generator. This constructor sets
                                           * the seed of the random number generator to a value very likely
                                           * to be distinct from any other invocation of this constructor.
                                           */
                                      
                                          public Random() {
                                              this(seedUniquifier() ^ System.nanoTime());
                                          }
                                      
                                          /**
                                           * Creates a new random number generator using a single {@code long} seed.
                                           * The seed is the initial value of the internal state of the pseudorandom
                                           * number generator which is maintained by method {@link #next}.
                                           *
                                           * <p>The invocation {@code new Random(seed)} is equivalent to:
                                           *  <pre> {@code
                                           * Random rnd = new Random();
                                           * rnd.setSeed(seed);}</pre>
                                           *
                                           * @param seed the initial seed
                                           * @see   #setSeed(long)
                                           */
                                      
                                          public Random(long seed) {
                                              if (getClass() == Random.class)
                                                  this.seed = new AtomicLong(initialScramble(seed));
                                              else {
                                                  // subclass might have overriden setSeed
                                                  this.seed = new AtomicLong();
                                                  setSeed(seed);
                                              }
                                          }
                                      Ответить
                                      • Ну вот с лонгом как-то реже придется перезагружать машину, не?

                                        Вообще забираю свою доёбку про несекурность: там в доке сказано, что это не для криптографии рендом, а вероятно чтобы фигурки в тетрисе выбирать, или tip of the day...
                                        Ответить
                                • А зачем пихать тиккаунт в Abs?
                                  И причем тут сид? Ты же не тиккаунтом сидишь, я надеюсь?


                                  И вообще: раз в 24 дня можно машину и перезагрузить
                                  Ответить
                                  • > раз в 24 дня

                                    Зачем? Можно просто не генерить случайные числа в эти критические дни.
                                    Ответить
                                    • А можно нагенерить их заранее, сохранить где-то в реестре, и потом оттуда брать?
                                      Ответить
                                      • > А можно нагенерить их заранее, сохранить где-то в реестре, и потом оттуда брать?

                                        Не знаю как можно было минусануть такую вкусную идею.

                                        Это или кто-то промахнулся или напрочь убито восприятие эстетики омерзительного.
                                        Ответить
                                        • > Это или кто-то промахнулся

                                          Я ;(

                                          Приношу извинения за миссклик.
                                          Ответить
                                      • > потом оттуда брать
                                        С диска Марсальи 1998 года.
                                        Ответить
                                        • С диска "самые популяряные случайные числа"
                                          Ответить
                                          • Однажды слышал ретробайку, как во времена мейфреймов гоняли монтекарлу и удивлялись почему результаты говно. Построили расперделение и обнаружили, что у PRNG есть всего 15 бинов. А в саппорте им заявили, что мы гарантируем, что одно число случайное, а за последовательности деньги не возвращаем.
                                            Ответить
                                          • В математических справочниках зачем-то печатали таблицу «случайных» чисел.
                                            Ответить
                                            • В смысле, «зачем-то»? Представь себе, есть у тебя число, а ты не знаешь, случайное ли оно. А тут, раз, и посмотрел в справочнике, и теперь знаешь.

                                              4, к примеру, случайное: https://imgs.xkcd.com/comics/random_number.png
                                              Ответить
                                              • То есть все натуральные от одного до шести включительно — случайные, потому что присутствуют на игральной кости?
                                                Ответить
                                              • — Петров, назови 5 случайных чисел.
                                                — 42, 69, 14, 88, 666.
                                                — Опять ничего не выучил, садись, 2.
                                                — Ну Марьванна, пожалуйста, не ставьте, у меня просто собака конспекты съела...
                                                Ответить
                                                • Если бы собака не съела конспект, он бы назвал 10097, 32533, 76520, 13586, 34673.

                                                  https://govnokod.ru/20318
                                                  Ответить
                                                  • С помощью решета Пастафариана можно легко находить случайные числа
                                                    Ответить
                                                    • Возможно, вы имели ввиду "решета Эбупрофена".
                                                      Ответить
                                                      • Какого олигофрена??
                                                        Ответить
                                                      • Про кого, про кого?

                                                        Кстати, мне ещё нравится название Ибуклин. Вероятно, в честь китайского слова «ибу», которое переводится как «шаг».
                                                        Ответить
                                                  • У нас есть старые машины без настоящего источника энтропии, а секьюрный рендом нам нужен.

                                                    Менять их дорого. Есть вариант нанять оператора, чтобы он двигал мышку и стучал по клаве создавая энтропию, либо купить стайку макак, и выдать клавиатуры им.

                                                    Как лучше сделать?

                                                    Первый случай легко оформить юридически, зато во втором мы сможем бесплатно получить веб-сайт
                                                    Ответить
                                                    • g: Hardware Random Number Generator
                                                      ex: «OneRNG», «TrueRNG», etc.
                                                      Ответить
                                                      • Но раз у нас нету встроенного то наверное и USB у нас нету?
                                                        А в LPT они лазят?
                                                        Ответить
                                                        • идея для стартапа: принтеры с CSPRNG, который получает энтропию из времени прихода запроса на печать*

                                                          * с 9.00 до 17.00 не работает, в промежутке 11.00-15.00 секьюрность не гарантируется
                                                          Ответить
                                                      • EineRNG
                                                        Ответить
                                                    • > Как лучше сделать?

                                                      Засунуть вебку в непрозрачную банку и хешировать картинку тепловые шумы с неё.
                                                      Ответить
                                                      • Ещё есть вариант со счётчиком Гейгера. Хэшировать временные интервалы между попаданиями в него частиц.

                                                        Возможно, СГ будет давать мало чисел, если радиационный фон низкий.
                                                        Ответить
                                                        • > счётчиком Гейгера

                                                          Диодик или резистор с усилителем всё-таки проще... И работают не только в чернобыле.
                                                          Ответить
                                                          • Можно перенести сервер в Чернобыль. Во-первых там заработает счетчик Гейгера. Во-вторых там дешевле земля под ДЦ.

                                                            А что с точки зрения физики? Придется экранировать витую пару и закрывать сервера?
                                                            Ответить
                                                            • Придётся проводить электричество. Местная электростанция почему-то не работает.
                                                              Ответить
                                                      • Не засовывай вебку
                                                        Ответить
                                                    • Прислонить микрофон к канализационной трубе и писать шумы с неё.
                                                      Ответить
                                                      • Crypographically Secure Funicular
                                                        Ответить
                                                      • Хакер подсыпит пургену жителям района, частота смывов увеличица, и он соберет семплы
                                                        Ответить
                                                    • PGP International из книжки собирал с мышки и хранил на будущее. Циммерман - врубной.
                                                      Ответить
                                  • > А зачем пихать тиккаунт в Abs?
                                    Это делает дефолтный конь-структор Рапьом в кишках этого клона Йажи
                                    public Random() : this(Environment.TickCount) {

                                    > И вообще: раз в 24 дня можно машину и перезагрузить
                                    Какой пользователь Шiпбошз )))
                                    Ответить
                                    • Я конечно не Брюс Шнайер, но где-то слышал, что параметризовать Random количеством тиков, монотонно растущих каждую милисекунду с момента запуска компутера, как-то не очень секурно.

                                      Или нет?

                                      >Какой пользователь Шiпбошз )))
                                      Если без шуток, то перезагрузить сервер с прыщами мне как-то легче психологически. Он почти наверняка поднимица. А что будет с виндой я хз, особенно если ты там обновлений наставил
                                      Ответить
                                      • > не очень секурно

                                        Вообще похуй, на самом деле. Кашу маслом не испортишь, сам генератор то тоже не особо секьюрный.
                                        Ответить
                                        • Я уже понел, что для сеурности всеравно надо Next-gen sec
                                          Ответить
                                        • Октябрина, Сентябрина, Ноябрина и, ~внезапно~ Тракторина
                                          Ответить
                                      • > Random количеством тиков, монотонно растущих каждую милисекунду с момента запуска компутера, как-то не очень секурно.

                                        В йажу завезли ЗесигеРапбом для криптопутизов.
                                        Ответить
                                        • Ну жова появилась в 1996, когда где-то еще могло и не быть хардварного источника энтропии.

                                          Но .NET уже делался в начале XXI века, и вместо того, чтобы сделать сразу хотя-бы какое-то подобие нормальново рэндома, они взяли, и урезали с 64 на 32 бита тик, ох

                                          Сейчас-то уже нормальный рендом у них есть
                                          Ответить
                                  • > Ты же не тиккаунтом сидишь

                                    Ну вот кстати, не было бы исключения -- не нашли бы это говнище...
                                    Ответить
                              • Какой zero-cost )))
                                Ответить
                        • Почему вы так упорно не хотите брать языки для белых людей?
                          echo(PHP_INT_MIN/-1);
                          
                          Success	#stdin #stdout 0.03s 24056KB
                          9.2233720368548E+18
                          https://ideone.com/dJwbT8

                          Исключения, переполнения, питушения, ошибки деления. В «PHP» ничего из этого нет.
                          Ответить
                          • «PHP» автоматически переключается с int на double, если результат не влезает. «Perl» тоже, если я ничего не путаю.

                            А в «Йажаскрипте» сделали тупее: там всегда double, только его ещё можно использовать там, где нужны целые числа.
                            Ответить
                            • > «PHP» автоматически переключается с int на double, если результат не влезает.

                              Язык высокого уровня, который автоматически всё делает. А не как лалка кидает исключение или выдает отрицашню.

                              И потом они спрашивают, почему я за «PHP». Да вот хотя бы поэтому.
                              Ответить
                              • > Язык высокого уровня, который автоматически всё делает
                                Именно поэтому
                                while(x < y)
                                ...
                                x = x+1;
                                Может зациклиться навечно при достаточно больших значениях y. Безо всяких предупреждений.
                                Ответить
                                • > Может зациклиться навечно при достаточно больших значениях y
                                  Именно для этого придумали PHP_INT_MIN и PHP_INT_MAX.

                                  <?php
                                  
                                  echo(abs(PHP_INT_MIN));
                                  echo(PHP_EOL);
                                  echo(abs(PHP_INT_MIN+1));
                                  
                                  9.2233720368548E+18
                                  9223372036854775807
                                  Ответить
                            • и руби
                              Ответить
                • Функцианальненько
                  Ответить
        • https://stackoverflow.com/a/61711253 и кстати вот.
          Ответить
          • а если числа unsigned, то не будет уб?
            Ответить
            • если числа unsingned то нет проблемы с говнопереполнением. Можешь тупо от большего числа отнять меньшее, и оно в unsigned отлично влезет.
              unsigned difference(unsigned a, unsigned b)
              {
                if(a > b)
                {
                  return a - b;
                }
                return b - a;
              }


              А для знаковых нужно какую-то нетривиальную хуйню писать.
              Ответить
              • Именно потому я против "знаковые числа"
                Ответить
                • А в задачах, где может вылезти отрицательное, заводить отдельную переменную под флажок знака и городить лес из ифов?
                  Ответить
                  • Можно и без переменных, а тупо через поток управления
                    void someshit(uint64_t a, uint64_t b)
                    {
                      uint64_t c = a - b;
                      if (c > a)
                      {
                        // тут код для отрицательного результата
                      }
                      else
                      {
                        // а тут для положительного
                      }
                      ...
                    }

                    Никакой переменной под флажок не нужно
                    Ответить
            • И да, переполнение unsigned чисел в языке C не являются UB
              Ответить
              • Угу, а signed является, потому что компилятор не обязан иметь то или иное представление отрицательного числа (например, дополнение итд)

                А мне вот птичка напела, что вроде в последней версии С++ стало можно переполнять знаковые, потому что единственное представление отрицательных чисел победило
                Ответить
                • единственное представление победило, но переполнять всё равно нельзя, потому что компилятороделы не хотят выкидывать свои свои оптимизации.
                  Ответить
                  • То есть не разрешили, но просто сказали "да, тут всегда дополнение, но этим знанием вы не пользуйтесь"?

                    Короче, я малость слышал звон, видимо
                    Ответить
                  • Их еще и победившая разрядность за жопу укусила.
                    Ответить
    • В индийской деревне Валасапалли, штат Андхра-Прадеш, во время праздника Макара-санкранти пьяный мужчина перепутал приятеля с козлом и зарезал его вместо животного.

      В воскресенье, 16 января, мужчина по фамилии Чалапатхи должен был совершить жертвоприношение и обезглавить козла во время индуистского праздника, посвященного солнечному божеству Сурье. По данным полиции, индиец был сильно пьян, и перерезал горло.

      ------
      Собссно вопрос. Индуисты. Карма-хуярма. Сансара. Коров нельзя убивать. А козлу голову резать можно
      Ответить
      • Везде двойные стондарты!
        Ответить
      • А ответ простой: любая религия - исчадие средневековья
        Ответить
      • Козел небось черный был, индусский сорт Бафомета.
        Ответить
      • А я бы на месте Сурье был доволен

        Козла ему в жертву каждый год приносят, а человеченки отведать ему редко случается
        Ответить
      • > Собссно вопрос. Индуисты. Карма-хуярма. Сансара. Коров нельзя убивать. А козлу голову резать можно

        У индуистов к коровам особое отношение, они их говном себе квартиру моют, а еще они считают, что коровы в следующей жизни перерождаются в человека (но говном человеков они полы почему-то не моют, удивительно).
        https://govnokod.ru/27607#comment672184
        Ответить
        • А еще есть Мундари, они каждый день умываются!
          https://www.youtube.com/watch?v=hh_9CfKq8KE
          Ответить
        • Потому что самса Ра не гарантирует, что человек переродится коровой.
          Ответить
    • какой багор
      endlessh/stable 1.1-5 amd64
        SSH tarpit that slowly sends an endless connection banner
      Ответить
    • Найти к 10ти утра или вечера?
      Ответить

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