Что такое ошибка на единицу

Поділитися
Вставка
  • Опубліковано 22 січ 2025

КОМЕНТАРІ • 48

  • @yaroslavishchuk
    @yaroslavishchuk 4 роки тому +8

    Вот это реально интересно смотреть... спасибо

  • @alexlegkostupov676
    @alexlegkostupov676 4 роки тому +5

    Подумал ещё об одной проблеме ошибки на 1цу - это расчёт количества дней между 2мя датами. Очень часто в языках готовые функции работают не так как мы привыкли считать в реальной жизни.

  • @rukissergej
    @rukissergej Рік тому

    спасибо. Познавательно. И верно не только для программирования.

  • @mrstronciy1060
    @mrstronciy1060 4 роки тому +31

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

    • @nmm33342
      @nmm33342 4 роки тому

      Спецом ошибся, чтоб тема была для видео

    • @sergnochevny
      @sergnochevny 4 роки тому +1

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

    • @S0ERDEVS
      @S0ERDEVS  4 роки тому +3

      @Serhii Nochevnyi а какой способ предлагаете вы? Довериться интуиции разработчика?

    • @sergnochevny
      @sergnochevny 4 роки тому

      Увы, однозначного ответа нет и, вероятно, не будет - все зависит от критериев приемки и стоимости затрат.
      Что же касается темы - Вы описываете теорию программирования по контракту, которая имеет, к примеру, на дотНет практическое выражение - некую библиотеку Contracts... а вот то, что библиотека практически мертвая, говорит о применимости вполне обоснованной теории на практике.

    • @Manuel-j3q
      @Manuel-j3q 3 роки тому

      @@sergnochevny ну так тесты на то и были придуманы чтобы отсеять совсем глупые ошибки. Писать без багов пока еще никто не умеет.
      Да и ни один тест не заменит брейкпойнты и next step- next step-next step или console.printf("I got here");

  • @prosto1076
    @prosto1076 3 роки тому +1

    Может тогда и в total нужно заменить n на n-1? Хотя раз в total определяется n уже с учетом того, что считаем от нуля, то может вообще никакой ошибки нет? Ведь нет условия, что |c| < 5, а только что n < 5

  • @wolfich4684
    @wolfich4684 4 роки тому

    очень интересно ваше мнение про такое вычислительное/computer мышление? в моем понимании это как решать быстро информац. задачи. Опять же таки думаю что в основе это знание алгоритмов, структуры данных..и многое многое что-то еще

  • @TeuFortMan
    @TeuFortMan 2 роки тому

    Теперь осталось узнать что такое инвариант.

  • @managerproject6729
    @managerproject6729 4 роки тому

    Это человек достойный патрон.
    Видео трансляции по архитектуре для патронов доступны?

  • @РайанКупер-э4о
    @РайанКупер-э4о 4 роки тому +2

    Самая жизненная ошибка. Когда её допускаешь, сразу начинаются пляски с бубном

  • @valentin3780
    @valentin3780 4 роки тому +3

    Как по мне, тут допущена логическая ошибка: индексы сравниваются с количеством. И индексы совсем не подряд могут идти. Поэтому, если этого не делать (не сравнивать логически разные вещи), то ошибка выродится.
    Но моё замечание именно о случае в видео. Ошибку на единицу при расчёте индексов никто не отменял)))

    • @S0ERDEVS
      @S0ERDEVS  4 роки тому +2

      Совершенно верно - я использовал i в значении cart.length, т.е. i < n - 1 должно быть L < n - 1, где L - cart.length и тогда все встанет на свои места.
      В случае видео n - максимальное значение индекса, оно же фигурирует как ограничение i в формуле. Поэтому как раз n логичнее сравнивать с i.
      Но инвариант удобнее формировать от понятия "количество товаров". Тогда рассуждение про L лучше воспринимаются. Но опять же при таком подходе нужно показать как верхнюю границу n связать с "количеством товаров".
      Ну и про то что индексы идут не подряд, то в мат. модели это невозможно, так как индекс в данном случае - порядковый номер элемента в массиве. В реализации - да, но там уже не мат. смысл у индекса.

    • @valentin3780
      @valentin3780 4 роки тому

      @@S0ERDEVS про мат. модель и нет речи, т.к. там порядковые номера переходят в индексы. А вот реализации часто делают наоборот, что не является корректным.
      Про инварианты также спору нет.
      Спасибо за ответ.

  • @qrthack
    @qrthack 4 роки тому +3

    Что за планшет на котором ты рисуешь?

  • @Vanesment
    @Vanesment 4 роки тому +2

    блин, а что здесь под инвариантом имеется в виду? вроде математическое определение знаю, но никак в данный контекст его связать не смог((

    • @useinabilev9210
      @useinabilev9210 4 роки тому +4

      Ты проверяешь какое-то логическое выражение на каждых этапах работы с какими-то данными, где это логическое выражение может поменяться.

  • @otfly
    @otfly 4 роки тому

    Вижу как у Жени мозг прям чешится, ну как им объяснить на практике инвариант?! 😄👍

  • @atar_kusx
    @atar_kusx 3 роки тому

    А что такое вообще инвариант ? И вот это add с квадратной скобкой.

  • @ri4an598
    @ri4an598 4 роки тому

    здравствуйте.Узнал про канал благодаря "Голой правде про программистов".Будут еще ролики подобного плана?

  • @Eraston
    @Eraston 4 роки тому +1

    Что-то вообще не понял, что значит: "при тройке - четыре".
    А вообще, изи контрится, главное только понимать разницу между Size (кол-во элементов) и Limit (границы допустимых значений включительно).
    0

  • @АнтонЛогинов-ю7й
    @АнтонЛогинов-ю7й 4 роки тому

    О, у вас, оказывается, есть более продвинутый канал!

  • @танунахепта
    @танунахепта 4 роки тому +4

    А и Б сидели на трубе....и задымились.

  • @eugenenovikov671
    @eugenenovikov671 4 роки тому

    на фоне майки 0 и 1 плохо видно было

  • @lightlocdog
    @lightlocdog 4 роки тому

    топчик

  • @callpack96
    @callpack96 4 роки тому +3

    лайк не глядя

  • @АнимусАнанимус
    @АнимусАнанимус 4 роки тому

    Поэтому давайте не будем использовать подобного рода императивные циклы (с итератором и выходом по условию) там, где в этом нет необходимости.
    Есть замечательный map-ы, zip-ы, fold-ы и прочее добро (не во всех языках, но можно ручками сделать), чтобы не промахиваться с {1;-1}.

  • @wolfich4684
    @wolfich4684 4 роки тому

    Я хотел бы спросить банальный вопрос ..что нужно знать программисту? Да, я смотрел твое видео 2019 года за март - (в основном говориться о мотивации) . Но если рассматривать на уровне базовых дисциплин ?
    То есть допустим я хочу заниматься Веб- программированием .. И всегда такой ответ : JS , основ БД, html, css и прочих несколько прикладных вещиц ... Но какие трансдисциплины/ базовые предметы будут для вот этих прикладных вещей? Математика, физика, электротехника - это оооочень низкий уровень и может даже не надо сюда заглядывать... Assembler - ну это как язык машинных кодов, но ни как дисциплина, описывающая основы программирования (грубо говоря)
    Что надо знать чтобы не быть говнокодером? "знание принципов освобождает от знания фактов" .. что надо знать чтобы так было?
    Первое что приходит на мой непрофессиональный взгляд..
    - основ алгоритмов и структур данных
    -основы логики
    - информатика
    - основы программирования ( то есть в принципе где речь идет об абстрагированном от конкретных языков описании)
    - архитектура компьютера
    - администрирование сетей/основы компьютерных сетей
    что-нибудь еще?

  • @jdueioksltoirtius9685
    @jdueioksltoirtius9685 4 роки тому

    мммм... Моя любимая ошибка! )))

  • @alexsokol9447
    @alexsokol9447 4 роки тому +3

    инвариант === константа?

    • @fazleev
      @fazleev 4 роки тому +5

      Я пока не уверен, что достиг понимания инварианта. Поправьте меня, пожалуйста, если неправ.
      Насколько понимаю сейчас - в инварианте может быть не одно, а комплекс условий, которым должно соответствовать решение.
      И да, сами условия могут зависеть от других.
      Таким образом, в частном случае инвариант может быть константой (допустим, площадь фигуры при геометрических преобразованиях не должна изменяться), но в общем случае инвариант назвать константой нельзя.

    • @РайанКупер-э4о
      @РайанКупер-э4о 4 роки тому +1

      В каком-то роде. Логическое выражение, истинность которого не должна меняться при выполнении программы. Что-то незыблемое в вашей программе, на что вы можете опереться.

    • @dann1kid
      @dann1kid 4 роки тому

      @@РайанКупер-э4о Как три закона робототехники

    • @РайанКупер-э4о
      @РайанКупер-э4о 4 роки тому

      @@dann1kid, это которые Азимов придумал?

    • @dann1kid
      @dann1kid 4 роки тому

      @@РайанКупер-э4о ага, просто как пример инварианта. То есть некоей абстрактной среды со своими невзаимоисключающими правилами.

  • @cyrilanisimov
    @cyrilanisimov 4 роки тому +1

    И на старуху бывает проруха. - как говорила подруга моего детства польская красавица Инга Зайёнц

  • @Евгений-э1ц3щ
    @Евгений-э1ц3щ 4 роки тому +2

    Достаточно было бы сделать

    • @sergnochevny
      @sergnochevny 4 роки тому +2

      и получилась бы ошибка на две единицы 🤣🤣🤣🤣