Алгоритм резервуарной выборки

Резервуарная выборка (eng. «reservoir sampling») — это простой и эффективный алгоритм случайной выборки некоторого количества элементов из имеющегося вектора большого и/или неизвестного заранее размера. Я не нашел об этом алгоритме ни одной статьи на Хабре и поэтому решил написать её сам.

Итак, о чём же идёт речь. Выбрать один случайный элемент из вектора — это элементарная задача:

auto result = vect[rand() % vect.size()]; // С++

Задача «вернуть K случайных элементов из вектора размером N» уже хитрее. Здесь уже можно ошибиться — например, взять K первых элементов (это нарушит требование случайности) или взять каждый из элементов с вероятностью K/N (это нарушит требование взять ровно K элементов). Кроме того, можно реализовать и формально корректное, но крайне неэффективное решение «перемешать случайно все элементы и взять K первых». И всё становится ещё интереснее, если добавить условие того, что N — число очень большое (нам не хватит памяти сохранить все N элементов) и/или не известно заранее. Для примера представим себе, что у нас есть какой-то внешний сервис, присылающий нам элементы по одному. Мы не знаем сколько их придёт всего и не можем сохранить их все, но хотим в любой момент времени иметь набор из ровно K случайно выбранных элементов из уже полученных.

Алгоритм резервуарной выборки позволяет решить эту задачу за O(N) шагов и O(K) памяти. При этом не требуется знать N заранее, а условие случайности выборки ровно K элементов будет чётко соблюдено.
Читать дальше →
Алгоритм резервуарной выборки
Source: geektimes

[Перевод] Тлетворное влияние: как Штази защищала Восточную Германию от видеоигр

6 января 1988 года был одним из тех дней, когда в старом здании в стиле «барокко» на Клостерштрассе в Восточном Берлине кипела бурная деятельность. Тогда здание называлось «Домом юных талантов» (HdjT), но сегодня ему вернули первоначальное название — Дворец Подевильса, данное ему в честь его первого владельца, министра иностранных дел при Фридрихе Великом. В тот зимний день в комнате на первом этаже, обычно используемом для репетиций местного детского хора, столпилось 70-80 человек. Каждую среду здесь собирался компьютерный клуб — группа, преимущественно состоящая из молодых людей, львиной доле которых было примерно по двадцать лет, а самым молодым — всего шестнадцать.

Похожие клубы в 1980-х можно было найти по всей Германской Демократической Республике (ГДР), только в одном Берлине их насчитывалось около двадцати. Но некоторые из посетителей той встречи прибыли в HdjT издалека, и на то у них были причины. Несмотря на то, что это был «Центральный клуб» комсомольской организации FDJ, ни один из компьютеров здесь не был произведён в ГДР. Все они появились с Запада.

image

Читать дальше →
[Перевод] Тлетворное влияние: как Штази защищала Восточную Германию от видеоигр
Source: geektimes

Пчеловоды против микроконтроллеров или о пользе ошибок

Пчеловоды за работой

Одним из наиболее консервативных видов деятельности человека является пчеловодство!
С момента изобретения рамочного улья и медогонки ~200 лет назад, прогресс коснулся данной области лишь незначительно.
Это выразилось в электрификации некоторых процессов выкачки(извлечения) меда да использование зимнего подогрева ульев.

Между тем, популяция пчел в мире сильно уменьшается — в силу изменения климата, широкого использования химии в сельском хозяйстве и того, что мы до сих пор не знаем чего-же хотят пчелы?

Мои пропали по первой причине, и это сильно поменяло изначальную концепцию «умного улья»

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

Ну и конечно-же вопрос цены — стоимость пчелиной семьи примерно равна стоимости простого улья и цене меда, производимой ими за сезон(год).

А теперь возьмите цену какого-то из взлетающих проектов и умножьте на количество ульев на коммерческой пасеке (от 100 и выше).

В общем, кому интересны пятничные размышления гика-пчеловода, прошу под кат!

Читать дальше →
Пчеловоды против микроконтроллеров или о пользе ошибок
Source: geektimes

Новые иконки Microsoft Office

Привет, Хабр! Сегодня у нас интересный анонс: новые иконки всех приложений пакета Microsoft Office. И да, листочка бумаги в логотипе Word действительно больше нет. Подробности и видео-анонс под катом!

Читать дальше →
Новые иконки Microsoft Office
Source: geektimes

Как отметить день информационной безопасности

Сегодня тридцатый по счету Международный день информационной безопасности. Рассказываем об истории праздника и способах его отметить.

Читать дальше →
Как отметить день информационной безопасности
Source: geektimes

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

Сегодняшняя статья будет несколько занудной, поскольку поднимает те вопросы, которые обычно никто обсуждать не любит. И речь в ней пойдет об основных, наиболее важных вопросов связанных с ТБ по работе с лазерами. Я постараюсь рассказать об этой неприятной, но очень важной теме с минимумом нудных букв и цифр, которые так любят приводить в разных «справочниках по правилам безопасной эксплуатации», разобрав основные вопросы с помощью наглядных и доступных примеров в духе «что будет, если». Какую опасность таит в себе лазер, все ли лазеры одинаково опасны? Будем разбираться.

ВНИМАНИЕ: Данная статья может содержать ошибки и неточности, так как я не специалист в медицинских вопросах.

image

Читать дальше →
Лазерная безопасность наглядно, или почему не стоит смотреть в лазерный луч
Source: geektimes

[Перевод] Битва за потребительский чек: анализ деятельности Walmart и Amazon

Аналитическая группа PYMNTS провела новое исследование и выяснила, что на долю Walmart приходится 8,9% расходов американцев на товары повседневного спроса. А по всем розничным категориям показатель компании составляет 2,8%. Это впечатляющая цифра, но есть одно но.

По пятам за Walmart идет компания Amazon со своими долями 6,4% и 2,1%. И, что важнее, динамика изменения этих показателей явно свидетельствует в пользу Amazon.

Сравнение потребительских расходов


Источник: PYMNTS.com

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

Анализ потребительских чеков

Исследователи PYMNTS в первую очередь изучили данные социологических опросов, чтобы оценить сумму расходов средней американской семьи по всем категориям товаров в 2018 году. Читать дальше →
[Перевод] Битва за потребительский чек: анализ деятельности Walmart и Amazon
Source: geektimes

Microsoft будет снаряжать VR-очками солдат США

Microsoft готовит свои очки HoloLens к бою, в буквальном смысле. Компания выиграла контракт на $480 млн с армией США, и теперь будет помогать солдатам погрузиться в смешанную реальность, чтобы стать еще эффективнее в реальных сражениях. Контракт рассчитан на 2 года, и за это время компания поставит правительству более чем 100 000 хедсетов.

Читать дальше →
Microsoft будет снаряжать VR-очками солдат США
Source: geektimes

3D-принтеры Carbon M2 и роботы: скоростная 3D-печать

На международной выставке промышленных технологий IMTS 2018 в Чикаго американская компания Carbon показала в действии автоматизированную систему SpeedCell, состоящую из нескольких устройств сверхбыстрой 3D-печати Carbon M2, печатающих по технологии CLIP, станции промывки и робота-манипулятора для обслуживания всей системы. Система предназначена для скоростной печати готовых деталей на производстве, но может печатать и прототипы. Рассказываем и показываем.
Читать дальше →
3D-принтеры Carbon M2 и роботы: скоростная 3D-печать
Source: geektimes

«Невидимые» мухи: новый метод изучения нервной системы посредством депигментации тканей

Исследование какого-либо организма — процесс сложный и требующий точности. Современные методы сканирования преуспели в этом. Сегодня мы можем достаточно детально изучить организм или отдельный орган на трехмерных изображениях. Лет 100 назад трехмерный вид органов можно было получить только вынув их из организма и рассмотрев в живую, так сказать. Однако всегда есть какое-то «но». Но даже самые точные сканеры и микроскопы не могут дать 100% точности. Вот если бы можно было сделать все ненужное невидимым, а ту часть организма, которую мы хотим изучить, оставить видимой. Звучит, как научная фантастика, не правда ли? Согласен. Но теперь это реально. Сегодня мы с вами будем знакомиться с исследованием нового метода сканирования организмов на примере дрозофилы. Как ученым удалось сделать обычную фруктовую мошку «невидимой», насколько точен их метод сканирования и как это поможет в диагностике заболеваний человека? Ответы на эти и другие вопросы мы можем получить только в докладе исследователей. Так не будем же тянуть. Поехали. Читать дальше →
«Невидимые» мухи: новый метод изучения нервной системы посредством депигментации тканей
Source: geektimes