Пишем свой

Sdílet
Vložit
  • čas přidán 13. 09. 2024
  • #soer #itubeteam
    Основной канал для общения и публикации новых видео - Телегарм - t.me/softwaree...
    Спонсорство - donate.s0er.ru
    Сайт платным контентом - soer.pro
    Зеркало для видео Дзен Видео - zen.yandex.ru/...
    GitHub - github.com/soe...
    Чат для программистов - / discord
    Группа ВК - codeart...

Komentáře • 117

  • @IndexSteadFast
    @IndexSteadFast Před 5 lety +6

    Я не программист. Работаю в 3Д и совсем чуть-чуть пописываю скрипты. Но, твой канал очень интересно смотреть. Хорошая, последовательная подача информации. Вообще мне просто любопытно, что там у программистов :)

  • @Happy-vo7rf
    @Happy-vo7rf Před 5 lety +23

    Где блин мои 3 тысячи лайков??? я уже устал 2ю часть ждать =\

    • @RobotN001
      @RobotN001 Před 5 lety

      в зависимости от выбора будет зависеть

    • @S0ERDEVS
      @S0ERDEVS  Před 5 lety +2

      Вышла уже

    • @Vladimir_Senkovets
      @Vladimir_Senkovets Před 3 lety

      @@S0ERDEVS Видел вторую часть! Я тогда мало что понял, так как был ещё зелёным. Хочу его сейчас найти, опять посмотреть. Я так понимаю ты его удалил? Зачем?

  • @GloriousJenya
    @GloriousJenya Před 5 lety +5

    Кул лайк. больше видео про алгоритмы

  • @MovsesKarapetyan
    @MovsesKarapetyan Před 5 lety +1

    Хотелось бы видеть видео про шифрование и перебор значений для нахождения ключа RSA к примеру. Ну как бы подобный формат.
    Видео понравилось, особенно про подводные камни когда используешь подобные реализации функции псевдослучайностей.

  • @user-yc6ez9lf9t
    @user-yc6ez9lf9t Před 5 lety +9

    Грамотный мужик, лайк

  • @КириллМихайлов-ж3х

    Для того, что бы достичь периода цикла равным количеству дискретных значений Х нужно, что бы а=(2^n)-1, а m=2^k и k должно быть примерно в 2 раза больше n.

  • @ZemT861
    @ZemT861 Před 5 lety

    Отлично, практика и теория, плюс математика!

  • @user-ej5up4bk8o
    @user-ej5up4bk8o Před 5 lety +1

    Блин, 8 тыс просмотров и всего 1 тыс лайков... Так мы вторую часть не дождёмся.

  • @user-yb3vy2wx8u
    @user-yb3vy2wx8u Před 5 lety +13

    Покажи, пожалуйста, реализацию крипто рандома на C

    • @fish9370
      @fish9370 Před 5 lety

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

    • @user-yc6ez9lf9t
      @user-yc6ez9lf9t Před 5 lety

      @@fish9370 ты про /dev/random?

  • @aliakseimaroz
    @aliakseimaroz Před 4 lety

    Было бы интересно увидеть видео об обфускиции строк в коде, да и в общем об обфускации и насколько это усложняет реверс-инжиниринг

  • @geekphone1343
    @geekphone1343 Před rokem

    И в чем разница между этим методом и стандартной реализацией rand? Это же одно и то же, то есть дефолтные библиотеки и основаны на этом методе или я чего-то не понял?

  • @a.danilenko
    @a.danilenko Před 5 lety

    "Рабочая сторона" как у дудя - левая. 9-) За видео - лайк и спасибо.

  • @user-ej5up4bk8o
    @user-ej5up4bk8o Před 5 lety +1

    Лайк поставил. Только не понял где второе видео уже доступно?

    • @S0ERDEVS
      @S0ERDEVS  Před 5 lety

      Для патронов - www.patreon.com/posts/predskazanie-29697136 (это платная подписка), на канале стараюсь публиковать только интересные материалы, которые интересны большинству. Для патронов публикую чуток больше, так как туда приходят люди, которым интересно.

  • @maximpetrov2742
    @maximpetrov2742 Před 5 lety +4

    Братан заряжай про криптографию!)

  • @roman_le
    @roman_le Před 5 lety

    Ух ты, программист VIM использует. Респект.

    • @victor-zz6xn
      @victor-zz6xn Před 4 lety

      А что здесь такого? Вим он и в Африке Вим.

  • @fpv_am
    @fpv_am Před 5 lety +1

    Соер а у вас есть в планах видео про ДДД или какую-то архитектуру? Всё-так это контент который нужен в реальной жизни.

    • @S0ERDEVS
      @S0ERDEVS  Před 5 lety +1

      В ближайших планах есть мысль поговорить про GRASP.

    • @fpv_am
      @fpv_am Před 5 lety

      Ждёёёёёёём!!!!!!!!!!!!

  • @VYACHESLAVx
    @VYACHESLAVx Před 5 lety

    Спасибо

  • @borisbadridinov3314
    @borisbadridinov3314 Před 5 lety

    Да ради такого не жаль и 3 тысячи аккаунтов создать, что б залайкать)))

  • @duapps4090
    @duapps4090 Před 3 lety

    Здравствуйте! Возник вопрос: почему глубина определяется именно тем способом, что вы показали (значение счетчика, измеряющего кол-во значений , не равных константе a ).

  • @yurov_andrey
    @yurov_andrey Před 5 lety

    расскажи про свой игровой опыт) играешь ли во что-нибудь или играл?

  • @fomenkoandrei3134
    @fomenkoandrei3134 Před 5 lety

    Хорошо бы было начать с объяснения термина3🤙

    • @S0ERDEVS
      @S0ERDEVS  Před 5 lety

      Хорошо, что не с азбуки ))))

  • @serhiis_
    @serhiis_ Před 5 lety +2

    Надо было сказать что m - это маска а не какое-то непонятное число которые не понятно как подобрали. Маска m не влияет на алгоритм, влияет только на кол-во бит в конечной выборке. А вот seed * a влияет. Для равномерного распределения последовательности эти 2 числа должны быть простыми числами. Вот и вся магия.
    10 не подходит, 10 число не натуральное. 11 возьми или 13

    • @serhiis_
      @serhiis_ Před 5 lety

      сразу видно что школьники писали этот алгоритм на викибредии. вместо сложной операции % остатка отделения там нужно использовать & логическое умножение. rand - это функция которая может быть вызвана в двойном или тройном цикле. Поэтому экономия тактов процессора тут может секономить часы реального времени каких-то инженерных вычислений.

    • @S0ERDEVS
      @S0ERDEVS  Před 5 lety +1

      @@serhiis_ логическое умножение и деление с остатком - это разные операции (пример: 10 & 7 = 2, а 10 % 7 = 3), не факт, что логическим умножением нельзя обойтись, но это нужно проверять.
      UPD: проверил, заменить логическим умножением нельзя.

    • @serhiis_
      @serhiis_ Před 5 lety

      @@S0ERDEVS сразу видно что вы не шарите о чем я говорю. любое число которые можно представить как 2^n-1 можно заменить на логическое умножение. На 16 системе это сразу видно. Там FF всегда дублируются. Если все равно не понятно - любое число где в двоичном виде стоят всегда единицы.

    • @serhiis_
      @serhiis_ Před 5 lety

      @@S0ERDEVS я даже не проверял ваше число 7fff... но уже написал. Потому что не нужно это проверять если знать элементарные арифметические операции для двоичных чисел.

    • @serhiis_
      @serhiis_ Před 5 lety

      @@S0ERDEVS вы до сих пор не поняли что m ни как не влияет на алгоритм? Зачем брать m != 2^n-1 ? Это всего-лишь ограничение разрядов.
      Вот смотрите по математеке что у нас происходит если брать длинную арифметику BigInt
      На первой итерации у нас a*b & maska
      На второй a^2*b^2 & maska
      На третьей a^3 * b^3 & maska
      Даже переменная m называется так от сокращения от maska. maska Ограничивает число знаков в BigInt что бы не выводило в ответ миллиард знаков.
      Так же учитывая то что маска огрничивает число знаков в степенной функции мы можем не использовать числа BigInt. Если маска Int32 то и результат a*b можно записать в Int32. От этого результат не меняется. Вот от сюда выводится эта формула в программирование. Все из математики идет.

  • @igorseledtsov7345
    @igorseledtsov7345 Před rokem

    правда что ли? обычно используется микросхема с толи калифорнием то-ли с чем другим..

  • @user-ir8nd6mj2b
    @user-ir8nd6mj2b Před 5 lety +1

    Можешь сделать видео про то, как работает память?
    Начал си учить, но память - это что-то страшное и непонятное.
    Особенно после видео про патч :(

    • @az0009990
      @az0009990 Před 5 lety

      открою тебе страшную тайну - указатель это число, и работать с ним можно как с числом.Главное понимать что это ЧИСЛО представляет собой просто номер байта в одномерном массиве в памяти, в которой выполняется код программы.

    • @user-ir8nd6mj2b
      @user-ir8nd6mj2b Před 5 lety

      az0009990 Ты прав :>
      Но всё же, например, какой смысл от функции malloc?
      Я так понимаю, она резервирует память, притом программы у которых нет зарезервированной памяти, работать не могут, верно? Тогда почему мой хелловорлд работает и без malloc?

    • @az0009990
      @az0009990 Před 5 lety

      @@user-ir8nd6mj2b советую почитать чем куча от стека отличается

    • @user-ir8nd6mj2b
      @user-ir8nd6mj2b Před 5 lety

      az0009990 А вот это уже интереснее. И где об этом узнать можно? (на русском, энглиш у меня плохой)

    • @az0009990
      @az0009990 Před 5 lety

      @@user-ir8nd6mj2b в гугле

  • @user-gz7rw8bs3v
    @user-gz7rw8bs3v Před 5 lety

    расскажите почему % реализуется не та как mod в некоторых языка (в C в частности) - есть для этого рациональная причина?

  • @olezhonnv3215
    @olezhonnv3215 Před 5 lety

    А почему сразу не реализуют криптографический генератор в языках?
    Или вообще аппартно генерировать случайное число - на уровне железа. Почему так не делают?

    • @vll1976
      @vll1976 Před 5 lety

      Делают, и очень давно уже.

  • @gregory.vovchok
    @gregory.vovchok Před 5 lety

    Что за магические числа в коде 16807 по нескольку раз? Для таких вещей надо выделять глобальную константу. А так, спасибо за видео :)

    • @S0ERDEVS
      @S0ERDEVS  Před 5 lety

      это следствие из "правила трех", устраняется путем рефакторинга.

  • @rasimbot
    @rasimbot Před 5 lety

    Почему после while не оставляешь пробел? Хорошо, когда есть подсветка синтаксиса, но если нет, то if, while, for без пробела при беглом просмотре кода становятся похожи на вызовы функций

    • @0imax
      @0imax Před 5 lety +1

      А ещё остались среды без подсветки синтаксиса? Давно не встречал.

  • @vadiimt
    @vadiimt Před 5 lety +2

    Пожалуйста, если возможно текст на экране по-крупнее. Спасибо.

  • @winston9722
    @winston9722 Před 5 lety

    ого , очки новые?

  • @rubiks7196
    @rubiks7196 Před 5 lety

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

    • @Pan-ux3bq
      @Pan-ux3bq Před 5 lety

      Залезь в исходники java и скопируй оттуда реализацию. Пакет BigInteger

  • @МаксимХвостов-м1й

    Soer, получается для 64бит чисел подойдет m=9223372036854775807
    все, ок, понял для чего m.

  • @MultiD0S
    @MultiD0S Před 5 lety

    правильно ли будет делать шансовую система на основе рандома? допустим шанс успеха 60%, получаем рандомное значение из 100 и если это значение меньше или равно 60 это true если больше то false ?

    • @S0ERDEVS
      @S0ERDEVS  Před 5 lety +2

      На lcg точно не очень хорошая идея. Есть модифицированные варианты где допускаются повторения, они намного лучше подойдут.

    • @user-yb3vy2wx8u
      @user-yb3vy2wx8u Před 5 lety

      большинство шансов так и вычисляются:
      rand() % 101 < chance

    • @S0ERDEVS
      @S0ERDEVS  Před 5 lety

      @@user-yb3vy2wx8u тут надо понимать, что если мы говорим про lcg, то этот метод без "сюрпризов". Например, если мы кидаем 100 раз монетку и считаем сколько раз выпал орел и решка (это шансовая система 50/50), то вариант 90 орлов и 10 решек - должен рано или поздно выпасть (очень редко, но должен). Но при использовании lcg такой вариант впринципе невозможен.

  • @slvrization
    @slvrization Před 5 lety

    2 константы в lcg, при вызове же будет каждый раз аллокация?

  • @cppprograms5868
    @cppprograms5868 Před 5 lety +1

    Почему Си, а не Си++?

  • @МаксимХвостов-м1й

    Фигасе, столкнулся сейчас с неприятной штукой: в одном компиляторе sizeof long int 4 байта в другом 8 (Оба компилятора gcc x86_64)

    • @4AneR
      @4AneR Před 5 lety

      Так это зависит от того, под какую платформу компилировал

    • @МаксимХвостов-м1й
      @МаксимХвостов-м1й Před 5 lety

      @@4AneR под x86_64, uint64_t в обоих 8 byte, int в обоих 4 byte, long int в одном 4 в другом 8, long long int в обоих 8byte, вроде бы uint64_t пишут гарантированно во всех компиляторах 8 byte, а про стандартные типы неразбериха какая то.

    • @4AneR
      @4AneR Před 5 lety +1

      @@МаксимХвостов-м1й суть в обратной совместимости, чтобы не ломать старые стандартные типы, ввели uint64_t и подобные, гарантирующие размер.

  • @vladorlinskas3629
    @vladorlinskas3629 Před 5 lety

    Подскажите пожалуйста бренд очков ваших, заранее спасибо

    • @S0ERDEVS
      @S0ERDEVS  Před 5 lety +1

      Я взял в аптеке первые попавшиеся. Чисто ради пробы.

    • @vladorlinskas3629
      @vladorlinskas3629 Před 5 lety

      @@S0ERDEVS Они антибликовые? Есть ли эффект?

  • @GloriousJenya
    @GloriousJenya Před 5 lety

    Былобе еще круто видео по структурами данных и как с ними работать и в чем хранить, ну скажем Графы

  • @ziftrue
    @ziftrue Před 5 lety +1

    Магические числа в коде, -антипатерн
    Я про 16807

    • @S0ERDEVS
      @S0ERDEVS  Před 5 lety +2

      Магическое число - это неименованное число. У меня четко прослеживается связь с алгоритмом "int a = 16807". Просто имя в алгоритме не презентабельное. Но все четко по правилам.

    • @ziftrue
      @ziftrue Před 5 lety +2

      @@S0ERDEVS
      7:10
      uint r=lcg();
      while (r!=lcg())n++;
      Я про то, что запоминать первое число, а не хардкодить его

    • @S0ERDEVS
      @S0ERDEVS  Před 5 lety +1

      @@ziftrue Так это вообще проверочный код, реализация самого алгоритма в методе lcg. А проверочный код должен выноситься в отдельный тест (и рефакториться) или удаляться - это уже по ситуации.
      Изначально хотел сделать через переменную "r" сохранение первого значения (если ты обратил внимание, я ее ввел, но не стал использовать), но потом понял, что пояснить сравнение "while(lcg() != r)" придется на словах, т.е. в данном случае явно теряется семантика. Поэтому решил использовать прямую константу. По идеи нужно было подобрать более точное название переменной "r", тогда можно было бы завести в условие цикла. Так что тут много нюансов.

    • @RobotN001
      @RobotN001 Před 5 lety

      @@ziftrue инициализация результатом функции ? фуу, это ж даже не совместимо с ANSI C

  • @scaymetonn6041
    @scaymetonn6041 Před 5 lety +1

    Внимание всё идёт на очки, не получается вникнуть в обсуждение. Очки блестят и поглощают внимание, не удается сконцентрироваться на сути

  • @KyivanEnjoyer
    @KyivanEnjoyer Před 5 lety

    с интереса скачал компилятор С, запустил код - жду жду жду нет результата програмы, почему?)

    • @S0ERDEVS
      @S0ERDEVS  Před 5 lety

      /dev/hands проверял?

    • @S0ERDEVS
      @S0ERDEVS  Před 5 lety

      А вообще, если все правильно сделал, значит у тебя разрядности не хватает, смотри sizeof(int).

    • @KyivanEnjoyer
      @KyivanEnjoyer Před 5 lety

      @@S0ERDEVS я не учил СИ, но после Java все понятно. win10, x64, intel 5, 8 озу

    • @ihateidiots9484
      @ihateidiots9484 Před 4 lety

      @@KyivanEnjoyer а хули ты сразу на java пришёл, минуя ассемблер и Си? Это как сразу в доктора наук идти, не окончив школу..

    • @KyivanEnjoyer
      @KyivanEnjoyer Před 4 lety +1

      @@ihateidiots9484 а нахуй мне Си?
      В универе начинал с C#, Java, Javascript.
      Остался на java.
      Щас на магистратуре есть Scala, Android(Java/Kotlin). Хз что тебе не нравится

  • @greg0r091
    @greg0r091 Před 5 lety

    Ты точно CTF не занимался?

    • @S0ERDEVS
      @S0ERDEVS  Před 5 lety +1

      Capture The Flag? Этим точно не занимался.

    • @greg0r091
      @greg0r091 Před 5 lety

      @@S0ERDEVS зря :)

  • @user-pt5ss4lj1k
    @user-pt5ss4lj1k Před 5 lety +2

    Из-за блика моника, один глаз смотрится ниже другого, выглядит крипово 😬

    • @RobotN001
      @RobotN001 Před 5 lety

      может это проблемы со зрдв

  • @KyivanEnjoyer
    @KyivanEnjoyer Před 5 lety

    это редактор VIM? почему он? для понтов типа олдскул?)

    • @S0ERDEVS
      @S0ERDEVS  Před 5 lety

      Даже не думал. Нужен был редактор, взял вим.

  • @tinkerbel1955
    @tinkerbel1955 Před 5 lety

    Включил на "третем" монике смотрю, эмм в основном слушаю..
    Типо, умный, удобно D) (Забавно получился слоган, прям как в рекламе).).
    (Для людей кто, даже на самую маленькую капельку не в теме, или с нечто подобным никогда не был знаком.. - для таких словно все равно, что в космос ракету отправить и их глаза на лоб лезут. --- А ты такой сидишь просто из интереса, ну или пытаешься понять нуу хотя бы капельку..)
    (с С++ не знаком, да понятно согласен круче С++ ниче нет.)
    Все равно, было интересно, спс.

  • @vadim1907
    @vadim1907 Před 5 lety

    Хитрый Соер, хоть бы раз рассказал, какими проектами занимался, что реализовал, над чем работаешь.

    • @S0ERDEVS
      @S0ERDEVS  Před 5 lety

      Уже миллион раз говорил, что занимаюсь распределенными системами мониторинга, BI-системами.

  • @lavcoder
    @lavcoder Před 5 lety +1

    Смотрел многие Ваши видео и все не мог для себя точно определить, а что же мне не нравится на данном канале? Как будто бы что-то не то... Со временем, кажется, понял, что именно не то. Есть какое-то ощущение, что автор несколько депрессивен и эта депрессивность/уныние передается зрителю. Кто согласен, ставь лайк, кто не согласен, ставь дислайк! Это просто мое предположение, возможно, ошибочное!

  • @blommorblommor6587
    @blommorblommor6587 Před 5 lety

    Очень сложно.