- PVSM.RU - https://www.pvsm.ru -

Теория шести рукопожатий. Личный опыт

Меня пару дней назад осенила идея написать парсер, который проверит теорию шести рукопожатий на одном конкретном аккаунте. Разумеется, выбор пал именно на социальную сеть ВКонтакте, а основная цель – найти Павла Дурова за кратчайший путь. Итак, поехали!

Теория шести рукопожатий. Личный опыт - 1

Для тех, кто не в курсе, что за такая теория

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


Писать свою библиотеку сбора друзей не стал, поэтому использовал уже готовый ВКонтакте API для .Net [1]. Вытягиваем оттуда функцию Friends.Get(ID), запасаемся чашечкой кофе и пишем за один вечер полноценный парсер. Не забываем про подводные камни: не попадет ли наша программа в ловушку рекурсии (у Васи в друзьях Петя, а у Пети Вася), не обидеться ли сервер за превышение лимита количества однотипных запросов, и можно смело начинать наше исследование. Так как дело не быстрое, решил взять сервер на тестовый период – это совершенно бесплатно, ровно на 10 дней. После дня работы было примерно следующее:

Теория шести рукопожатий. Личный опыт - 2

Все работает, собран первый миллион пользователей, осталось только ждать!

Спустя пару дней скорость значительно упала, что весьма ожидаемо. Дело в том, что каждого нового пользователя надо было сравнивать с уже добавленными, так как в базе не должно быть повторов. Можно глянуть статистику обращений:

Теория шести рукопожатий. Личный опыт - 3

Что же удалось за все это время?

Всего было собрано: 5 601 348 пользователей
Среднее количество друзей: 340
Максимальное количество друзей: 9908

И самое интересное, я дошел лишь до 4 уровня связи:

1 уровень связи: 24 пользователя
2 уровень связи: 2 216 пользователей
3 уровень связи: 472 869 пользователей
4 уровень связи: свыше 5 601 348 пользователей

Теперь, каких же известных людей удалось все же найти:

Павел Дуров

id165096139 --> id35209022 --> id95640814 --> id1

Дмитрий Медведев

id165096139 --> id35209022 --> id95640814 --> id1 --> id53083705

Алексей Шевелёв (редактор группы Хабра в ВК)

id165096139 --> id23045636 --> id4197503 --> id146891

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

Заключение

Как я считаю, эксперимент все же удался – Павел Дуров найден! Для пущей уверенности можете отправить мне свой id, и я построю для Вас цепочку из знакомых. Исходники крепить не имеет смысла: зачем нервировать людей, у которых аллергия на ужасный код?

Все опечатки сделаны умышленно.

Автор: нештатный корреспондент

Источник [2]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/pesochnitsa/75909

Ссылки в тексте:

[1] ВКонтакте API для .Net: http://habrahabr.ru/post/216553/

[2] Источник: http://geektimes.ru/sandbox/414/