Я решил проверить парадокс дней рождений на данных, которые доступны из ВК.
Что такое парадокс дней рождений?
Попробуйте ответить на вопрос: Какое количество людей в комнате необходимо, чтобы у двух людей были одинаковые дни рождения с вероятностью 0.5? (дата и месяц). Парадокс дней рождений отвечает на этот вопрос.
Для того, чтобы решить задачу стоит выделить несколько предпосылок:
- В модели не будет 29 февраля => в модели 365 дней в году
- Каждый из 365 дней равновероятен.
Большинство людей интуитивно отвечают на вопрос задачи: 180. Выглядит логично, 180 человек необходимо для того, чтобы иметь вероятность 0.5 одинаковых дней рождений(всего же 365 дней). Примерна такая интуиция у всех, кто никогда не слышал про парадокс дней рождений. Правильный ответ на самом деле сильно меньше 180, и даже 150, и даже 100: 23.
Необходим как минимум 1 совпадающий день рождения — поэтому я могу найти вероятность, отсутствия совпадающих дней рождений:
.
Идея такая: я беру первого человека и запоминаю его день рождения, далее второго и вычисляю вероятность, что его день рождения не совпадает с днем рождения первого; далее третьего и его вычисляю вероятность, что его день рождение не совпадет с днями рождения первого и второго.
Решая уравнение, получается, что необходимо 23 человека и вероятность совпадающих дней рождений будет 0.5073, при 100 людях, вероятность равна 0.9999.
Посмотрим парадокс на данных ВК?
В теории у нас при 23 людях вероятность совпадающих дней рождений 0.5073, при 50 людях 0.97, а при 100 0.99. Проверим это через VK API.
1. Выбираю большое сообщество в ВК. Я решил взять группу MDK во Вконтакте…
В начале я создаю csv файл с колонками, которые мне необходимы.
with open(‘vk_data.csv’, ‘w’) as new_file: # csv fieldnames = [‘id’, ‘bdate’, ‘bmonth’, ‘byear’, ‘dandm’] csv_writer = csv.DictWriter(new_file, fieldnames=fieldnames, delimiter=’,’) csv_writer.writeheader() newDict = dict()
Логинюсь в ВК через API и задаю необходимый мне паблик
vk_session = vk_api.VkApi(‘username’, ‘password’) vk_session.auth() vk = vk_session.get_api() vk_group = vk.groups.getMembers(group_id = ‘mudakoff’, fields = ‘bdate’)
Начинаем парсить ВКонтакте, их API позволяет запарсить только 1000 юзеров, поэтому создаю цикл.
for i in range(0, 20): vk_group = vk.groups.getMembers(group_id = ‘mudakoff’, offset = 1000 * i, fields = ‘bdate’) for k in range(0, 1000): try: new_file.write(str(vk_group[‘items’][k][«id»]) + ‘,’ + str(vk_group[‘items’][k][«bdate»]).replace(‘.’, ‘,’)) new_file.write(‘n’) except: pass
В теории мы предполагали, что дни рождения равновероятны, а что происходит на практике? Построю гистограмму дней рождений.
Дни рождения по месяцам не являются равновероятнотными событиями, что в целом достаточно логично — это всего лишь предпосылка для решения проблемы дней рождений. Очевидно, что будут наблюдаться различные сезонные являения, для различных локаций. Почему-то июль наиболее популярный месяц для дня рождения подписчиков МДК.
Эмпирически оценю вероятность того, что в группе из 50 произвольных людей найдутся хотя бы двое с одинаковым днём рождения. Для этого я написал цикл, в ходе которого из таблички происходит подвыборка из 50 строк. Для этих 50 строк внутри условия я проверил совпадение дней рождений. Если совпало, то я запомнил это в переменную счётчик, которую я впоследствии, чтобы получить вероятность, поделю на длину цикла.
fifty = df[«dandm»].sample(n = 50) for i in range(0, 1000): fifty = df[«dandm»].sample(n = 50) for j in fifty.duplicated(): if j == True: counter = counter + 1 break print(‘Вероятность:’, counter / 1000)
Вероятность получается в районе 0.97, что совпадает с теоретическими данными.
Вывод
Интересно было посмотреть, как теория соотносится с эмпирикой и в данном случае данные подтверждают теорию. Стоит отметить, что результат репрезентативен, так как выборка достаточно большая — 20000 человек.
Ресурсы
- Harvard University. Birthday Problem, Properties of Probability | Statistics 110. URL: www.youtube.com/watch?v=LZ5Wergp_PA
Источник: habr.com
Как узнать дни рождения участников группы вконтакте
Получаем список участников сообщества ВКонтакте определенного пола и возраста
На создание данной статьи я был вдохновлен публикацией «Получение участников сообщества vk.com за считанные секунды». Моя статья написана новичком и отражает опыт решения одной задачи. Основная цель написания этой статьи для меня — собрать мнения, отзывы и критику примененного подхода от более опытных коллег. Кроме того, надеюсь, что кому-то приведенная здесь информация будет полезна.
Не так давно в одном из тестовых задания на вакансию младшего php-программиста мне попалась простая, но интересная для меня задача.
«Сделайте скрипт на php, который возвращает список id пользователей «ВКонтакте», разделенный символами перевода строки, которые являются мужчинами старше 25 лет и состоят в группе vk.com/habr».
Доступ к информации из базы «ВКонтакте» осуществляется с использованием VK API. Начинать знакомство с VK API лучше с официальной документации. Для того чтобы вызвать метод API ВКонтакте, необходимо осуществить POST или GET запрос по протоколу HTTPS на URL следующего вида:
api.vk.com/method/METHOD_NAME?PARAMETERS
Как посмотреть у кого из друзей сегодня день рождения в ВК с телефона?
Как посмотреть дни рождения в ВК
Выбрать время пуликации. Вы можете выбрать время публикации с 6:00 по 17:00 для ежедневного постинга поздравлений, а также выбрать одноразовый постинг либо по воскресеньям с 17:00 до 19:00, либо по воскресеньям с 20:00 до 22:00;
Добавить фото к посту. Технически это означает, что к вашему посту прикрепится фото из одного из альбомов официального сообщества VKBday. Там есть как обычный (основной) альбом общей направленности, представляющий из себя обычные картинки с поздравлениями, шариками и тому подобным, а также целый каталог категорий для подбора поздравительной “открытки” именно для вашего сообщества, а вернее для соответствия его тематике. Таким образом вы можете прикрепить к посту поздравительную картинку на одну из тем:
-
Основной альбом (общая тематика)
Пища и кулинария
Растения и животные
Музыка и фильмы
Здоровье и спорт
Как это работает?
-
Перед началом работы сервиса потребуется добавить модератора в своё сообщество. Этот “модератор” является пользователем-ботом сервиса VKBday и именно через него будет осуществляться автоматизированная работа сервиса VKBday.
Для того, чтобы дать права модератору на публикацию постов от имени сообщества, необходимо назначить ему права редактора в сообществе;
Затем нужно пополнить баланс своего аккаунта. К счастью, благодаря низким ценам сервиса и возможности пополнять баланс на незначительные суммы, вы можете протестировать ресурс, потратив на тесты всего 10 рублей;
Сервис принимает оплату с карт Visa, MasterCard и МИР, с кошельков QIWI и Яндекс.Деньги, через платёжную систему OKPay, посредством мобильного (только для оператора МТС) или банковского перевода;
Сколько это стоит?
По умолчанию, сервис берёт плату в размере 1 рубля за одну поздравительную публикацию. В зависимости от того, как вы хотите модифицировать стандартное поздравление, цена, соответственно, будет увеличиваться:
-
Добавить свой текст поздравления – +0.2 руб
Выбрать время публикации – +0.3 руб
Добавить фото к посту – +1 руб
Как узнать дни рождения участников группы вконтакте
Содержание инструкции:
Модуль “Дата рождения” находится во вкладке “Профили пользователей” в Pro-версии по ссылке (доступно для зарегистрированных пользователей).
Во многих нишах целевая аудитория — именинники и именинницы. И это не только доставка готовых блюд или аренда банкетных залов. В честь дня рождения можно получить скидку при покупке одежды, игрушек, бытовой техники и многих других товаров и услуг.
Настройки кабинета ВКонтакте позволяют настраивать рекламу только на тех, у кого день рождения “Сегодня”, “Завтра” или “В течение недели”. Модуль же Церебро “Дата рождения” дает возможность найти пользователей, у которых день рождения в любой по длительности период, в любом месяце.
Он позволяет найти аудиторию для:
- Продвижения товаров и услуг ко дню рождения: подарков, цветов, скидок на доставку еды, тортов и выпечки, ресторанов и кафе, магазинов одежды и даже туристических путевок с посылом: “Отметь свой день рождения так, как никогда не отмечал!”.
- Продвижения услуг астрологов, нумерологов и других специалистов, которые работают с датой рождения.
Для поиска аудитории необходимо:
1. В поле введите название задачи, под этим названием она будет отображаться в истории всех задач и под таким названием будут скачиваться результаты.
2. Укажите данные для анализа. В качестве исходных данных можно использовать:
- список ссылок на сообщества, среди участников которых нужно найти пользователей, у которых день рождения в определенный период;
- файл с ID пользователей. Для этого кликните на иконку загрузки и выберите файл со списком ID со своего компьютера;
- список ссылок на аккаунты пользователей. Для этого кликните на иконку загрузки и выберите файл со списком ID со своего компьютера;
- список ID пользователей или ссылок на аккаунты из результатов другой задачи. Для этого кликните на иконку списка и выберите результат задачи из истории.
3. Фильтры настройки результатов:
- укажите временной период (день и месяц), в течение которого должен быть день рождения у нужных вам пользователей.
Как только все данные заполнены, необходимо нажать кнопку “Запустить” для выполнения задачи. Сообщение о завершении работы придет на почту, которую вы указали при регистрации
Обратите внимание! Из-за ограничения API ВКонтакте в модуле “Профили пользователей” – “Дата рождения” нельзя собирать пользователей с нужной датой рождения из чужих сообществ со скрытым списком участником.
Источник: vkdom.su
Как узнать дни рождения своих подписчиков группы?
А как? Если их четыре тысячи? Не в друзьях(там оповещение), а в группе?
Полезный ответ 0 Бесполезный ответ
03.08.2019 в 10:09
Если Вы с ними в переписке, то это высветится, если нет, то зайти на страничку и посмотреть.
Полезный ответ +2 2 Бесполезный ответ
03.08.2019 в 11:13
Ирина ,Вы хотите делать приятное ,направляя поздравление каждому подписчику??Так делайте это пакетом,каждый день кидайте вопрос всем четырем тысячам и ..ПОЗДРАВЛЯЙТЕ!)))..А вас когда можно поздравить??огласите. ))
Полезный ответ 0 Бесполезный ответ
Добавить ответ
Похожие вопросы
Mixail , 57 лет , Герцлия
11.03.2023 в 18:41
Александра , 35 лет , Санкт-Петербург
06.05.2018 в 13:25
01.03.2023 в 11:57
Валерий , 50 лет , Таллин
06.03.2023 в 21:33
01.03.2023 в 11:59
Похожие вопросы
- Как отметить день рождения подростка?
- Как думаете, место рождения человека, делает его лучше или хуже? Я не скрываю, что родилась в Казахстане. Сегодня один чувак хотел знакомиться по ближе. А когда узнал, что переселенка, сразу вдруг накинул мне к возрасту пять лет и ретировался. Чудак?
- Пятница проходит как все дни, вот сегодня четверг, у нас идут дожди, правда надоели, но такова природа, с ней бороться невозможно?
- Как спланировать день рождения?
- Как спланировать день рождения 11 лет?
- Почему старк не берет вещи из рук?
- Как спланировать день рождения 12 лет?
- Почему плохо работает ютуб?
Источник: fotostrana.ru