Монте-Карло: практика | Вероятность и статистика #4

Поділитися
Вставка
  • Опубліковано 4 лип 2024
  • Покупайте мой курс по А/Б-тестам stepik.org/a/194930 Скидка 20% по промо коду UA-cam
    Подписывайся на Телеграм t.me/mikhaylovgleb
    Ноутбук: colab.research.google.com/dri...
    0:00 начало стрима, шутки, леопарды
    3:32 Что такое вероятность
    7:23 Вероятность что на кубике выпадет шестерка
    14:03 Парадокс дней рождений (в конце натупил: если в комнате 367 человек, то вероятность совпадения 100%)
    28:07 Задача про студента
    37:07 Признаюсь, что натупил в рассуждениях про парадокс дней рождений
    43:35 Задача про такси
    57:13 Зада про русскую рулетку
    1:31:20 Неудачное исполнение песни Зеленоглазое такси (не смог оправится после тупки парадоксе дней рождений)

КОМЕНТАРІ • 36

  • @user-px6ve1bs5e
    @user-px6ve1bs5e 3 місяці тому +1

    Побольше бы таких видео с задачами! Очень здорово. Мозг как будто железо потягал, и начинает думать "а что, если в таксопарке другое распределение машин; а что, если зарядить барабан иначе". И когда решаешь эти расширения к задачам, чувство собственного достоинства не заставляет себя ждать.

  • @evgeny9919
    @evgeny9919 2 роки тому +18

    Глеб, класс! Смотрю четвертое видео на одном дыхании. Спасибо за Зеленоглазое такси. Очень душевно)

  • @susannasusanna5329
    @susannasusanna5329 24 дні тому

    Шикарнейшие занятия! Глеб, спасибо огромное! Удачи во всём и везде 😍

  • @mlpython1089
    @mlpython1089 2 роки тому +7

    Спасибо за видео. Отличный способ узнать про Монте-Карло не залезая в википедию.

  • @olesyafink9545
    @olesyafink9545 Рік тому +1

    Задача про русскую рулетку - это парадокс Монти Холла с поменянными классами(там нужно "выиграть"(приз), а мы хотим "проиграть" (пулю)).
    Лично для себя, после знакомства с этим парадоксом, вывела практическое жизненное правило : "Если цель "выиграть" - меняй ставку при смене диспозиции, если цель "проиграть" - оставайся где ты есть" Ж)

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

    Вроде подходит)
    def one_turn(chamber):
    return chamber[-1:] + chamber[:-1]

  • @mlpython1089
    @mlpython1089 2 роки тому +3

    К парадоксу дней рождений. У нас в отделе около 20 человек. У двух пар дни рождения в один день.

  • @iugulava
    @iugulava 11 місяців тому +1

    Задача про такси прекрасная иллюстрация теоремы Байеса. Спасибо за стрим. Хотя вы решили другим, не менее интересным путем.

  • @olegd.6950
    @olegd.6950 Рік тому +3

    Глеб, спасибо большое! Просто супер! И полезно и настроение создаешь отличное! =)

  • @andrewh2144
    @andrewh2144 10 місяців тому +3

    Таллебу есть кем гордиться

  • @user-gs1ct1xq2m
    @user-gs1ct1xq2m 2 місяці тому

    Про парадокс дней рождений - даже при условии, что в комнате находится тысяча человек, все равно есть вероятность, что все они родились, скажем 1 января.Маленькая, но есть.Питон просто не показывает слишком маленькие значения, это можно впринципе понять через этот цикл:
    n = 0
    x = 1
    while n < 22:
    x *= (364-n)/(365)
    n +=1
    print(1-x)
    вывод: 0.507...
    но если мы заменим 22 на 999 -вывод единица, даже если заменим на 155 будет вывод единица, т.к. колаб ограничивает запись числа после запятой до 16 знаков, если 17 знаков после запятой девятки - то выведет единицу.
    0.99999999999999999 = 1
    P.s. Спел збс, такому исполнителю полагается бесплатная цистерна виноградного дня каждый день =)

  • @toryk95
    @toryk95 Рік тому +1

    Однозначно лайк! Спасибо большое, Глеб!

  • @just-igor
    @just-igor 2 місяці тому

    лайк поставил. коммент для продвижения написал. Спасибо за бесплатный контент. Идем дальше

  • @YuriySelf
    @YuriySelf Рік тому +1

    Глеб, это прекрасно!

  • @user-we5uw5vi8x
    @user-we5uw5vi8x Рік тому +1

    В парадоксе о днях рождения намонтекарлил комбинаторный принцип Дирихле

  • @musl1618
    @musl1618 Рік тому +3

    Много интересных задачек по вероятности в книге Неслучайная случайность. Тоже проверял их через Монте-Карло но в Экселе))) Пайтон это делает намного элегантнее😎

  • @parvizyuldashev4668
    @parvizyuldashev4668 Рік тому +1

    Лучший!

  • @interests9611
    @interests9611 2 роки тому +1

    Глеб, спасибо за материал, было очень познавательно и полезно!
    Ох уж эти контринтуитивные задачи по вероятности 😅
    def one_turn():
    chamber.insert(0, chamber.pop())
    return chamber

    • @Diabolic9595
      @Diabolic9595 Рік тому +1

      Во время вращения барабана в этой функции патрон может случайно выпасть)

  • @Aporlev
    @Aporlev Рік тому +1

    Крутил chamber, проиграл, спасибо за трансляции)

  • @iugulava
    @iugulava 11 місяців тому

    Спасибо

  • @artems4342
    @artems4342 10 місяців тому

    ясно понятно даже ребенку, можно любую логику вращения захардкодить:
    def one_turn(chamber):
    [p1, p2, p3, p4, p5, p6] = chamber
    return [p6, p1, p2, p3, p4, p5]
    через функции списков, можно на любом языке (почти везде есть аналоги push/pop, shift/insert):
    def one_turn(chamber: list):
    res = chamber
    res.insert(0, res.pop())
    return res
    через питоновские индексы (на других языках может не прокатить):
    def one_turn(chamber):
    return [chamber[-1]] + chamber[0: -1]

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

    1:07:06
    def one_turn(lst):
    return [lst[(i - 1) % 6] for i in range(len(lst))]

  • @vadimselin4386
    @vadimselin4386 2 роки тому +2

    Глеб, привет! Пересматриваю этот видос, монеткарлю чуть. Для задачки с барабаном предлагаю более краткое исполнение функции, которая рандомно барабан проворачивает:
    def chamber_spin(chamber):
    '''
    Функция принимающая на вход начальное значение барабана (список)
    Которая случайным образом вращает барабан (сдвигает элементы списка по порядку на случайное количество позиций)
    '''
    n = np.random.randint(1,7)
    return np.roll(chamber, n)

    • @GlebMikhaylov
      @GlebMikhaylov  2 роки тому +1

      Круто! Не знал про np.roll

    • @vadimselin4386
      @vadimselin4386 2 роки тому +1

      @@GlebMikhaylov Та я тоже 10 минут назад не знал))) Всё как ты завещал: гугл переводчик + гугл поиск и немного смекалки 🤜🏼🤛🏼

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

      @@vadimselin4386 Мне вот этот вариант понравился еще: x.append(x.pop(0)). Тоже интересный случай, но в данном случае барабан покрутится в обратном направлении))

  • @semendyakonov7109
    @semendyakonov7109 2 роки тому +1

    Интересно если в группу набирать разное кол-во человек, что будет? Для ответа на вопрос провел ряд экспериментов.
    Код:
    import pandas as pd
    import numpy as np
    import seaborn as sns
    bd = pd.Series(range(365))
    n = 10000
    n1 = 200
    res = []
    for i in range(n1):
    a = np.mean([bd.sample(2,replace=True).duplicated().max() for _ in range(n)])
    res.append(a)
    sns.histplot(res)
    t = pd.DataFrame(res)
    t.head()
    t['cum'] = t[0].cumsum()
    t['smp_sz'] = range(1,n1+1)
    t['mn'] = t['cum']/t['smp_sz']
    t.set_index('smp_sz')['mn'].plot()
    Результаты запуска одной попытки из нескольких:
    для 2 человек: ~0.0029
    для 23 человек: ~0.507
    для 57 человек: ~0.99025
    для 100 человек: =1.0 (если 100 и более человек, то =1)
    для 99 человек: ->1.0 (стремится к 1 слева, иногда равно 1, как при 100, а иногда меньше 1 типа 0.99999999)
    для 85 человек: ~0.9996 (часто меньше 1)
    для 20 человек: ~0.4115
    для 30 человек: ~0.707
    ноутбук тут: colab.research.google.com/drive/14i8wVkWuehhw19UN9jcO120EB1TMHLKI?usp=sharing

  • @vinylrave2185
    @vinylrave2185 2 роки тому +1

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

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

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

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

    По итогу wimp'а угостил виноградным днем?) 36:20

  • @user-nb6ic4cg5d
    @user-nb6ic4cg5d 2 роки тому +1

    Мне кажется, что неверно, что если количество участников превышает количество вариантов, то кто нибудь 100% совпадёт. А вдруг совпадёт так, что при 364 днях и 365 участниках попадётся 3 человека, у кого будет в один день ДР, и тогда один день останется не праздником, и такая вероятность есть при бесконечно любом количестве участников, разве нет?

    • @vladenec
      @vladenec 2 роки тому +1

      Андрей, это немного разные задачи: совпадение ДР хотя бы у одной пары из N участников и несовпадение ДР у всех (N участников и N разных дней рождений )

    • @user-bc7ky5di9t
      @user-bc7ky5di9t Рік тому +1

      @@vladenec совпадение ДР хотя бы у одной пары из N участников = 1 - несовпадение ДР у всех. Глеб был прав, оно стремится к 100% но не достигнет никогда(даже при 1 млн человек, остается вероятность того что у них у всех хоть в 1 день будут дни рождения) , вопрос лишь в количестве 9 после запятой

  • @user-xd8im9yq9h
    @user-xd8im9yq9h Місяць тому

    Смотрела видос Савватеева о парадоксе др, вывод: если p-value=0.5, у нас нет оснований отвергнуть Н0 о том, что в группе из 23 человек нет совпадения др.
    one_turn_chamber: chamber.append(chamber.pop(0))

  • @Alex-fz9kj
    @Alex-fz9kj Рік тому +2

    bd = [len(set(np.random.randint(0,365,23))) for _ in range(10000)]
    sns.histplot(bd, stat='probability')
    Про ДР