Элементы комбинаторики. Элементы комбинаторики Секунды, чтобы перечислить все комбинации двух или более списков в Excel

Друзья! Раз уж есть у меня этот мертвый блокнот, использую-ка я его для того, чтобы задать вам задачку, над которой вчера билось три физика, два экономиста, один политеховский и один гуманитарий. Мы сломали себе весь мозг и у нас постоянно получаются разные результаты. Может быть, среди вас есть программисты и математические гении, к тому же, задачка вообще школьная и очень легкая, у нас просто не выводится формула. Потому что мы бросили занятия точными науками и вместо этого зачем-то пишем книги и рисуем картины. Простите.

Итак, предыстория.

Мне выдали новую банковскую карточку и я, как водится, играючи угадала ее пин-код. Но не подряд. В смысле, допустим, пин-код был 8794, а я назвала 9748. То есть, я триумфально угадала все цифры , которое содержались в данном четырехзначном числе. Ну да, не само число , а просто его составляющие у гадала. Но цифры-то все верные! ПРИМЕЧАНИЕ - я действовала наугад, то есть, мне не надо было расставить уже известные числа в нужном порядке, я просто действовала в духе: вот тут есть неизвестные мне четыре цифры, и я считаю, что среди них могут быть 9, 7, 4 и 8, а порядок их не важен. Мы тут же задались вопросом, сколько у меня вообще было вариантов (наверное, чтобы понять, насколько это круто, что я вот взяла и угадала). То есть, из скольких комбинаций четырех цифр мне нужно было выбирать? И тут, натурально, начался ад. У нас весь вечер взрывалась голова, и у всех, в итоге, вышли абсолютно разные варианты ответа! Я даже начала выписывать все эти комбинации в блокнот подряд по мере возрастания, но на четырех сотнях поняла, что их больше четырех сотен (во всяком случае, это опровергло ответ физика Трэша, который уверял меня, что комбинаций четыре сотни, но все равно это не совсем однозначно) - и сдалась.

Собственно, суть вопроса. Какова вероятность угадывания (в любом порядке) четырех чисел, содержащихся в четырехзначном числе?

Или нет, переформулируем (я гуманитарий, простите, хотя к математике всегда питала огромную слабость), чтобы было яснее и четче. Сколько не повторяющихся комбинаций цифр содержится в ряду порядковых числительных от 0 до 9999? (пожалуйста, не путайте это с вопросом "сколько комбинаций не повторяющихся цифр"!! ! цифры могут повторяться! в смысле, 2233 и 3322 - это в данном случае одна и та же комбинация!!).

Или еще конкретнее. Мне нужно четыре раза угадать одну цифру из десяти. Но не подряд.

Ну или еще как-нибудь. В общем, нужно узнать, сколько у меня было вариантов числовой комбинации, из которой складывался пин-код карточки. Помогите, люди добрые! Только, пожалуйста, помогая, не начинайте сразу писать, что вариантов этих 9999 (вчера такое всем приходило в голову поначалу), потому что это же глупости - ведь в том ракурсе, который нас волнует, число 1234, число 3421, число 4312 и так далее являются одним и тем же! Ну и да, цифры же могут повторяться, ведь бывает пин-код 1111 или там, например, 0007. Можно представить вместо пин-кода номер машины. Допустим, какова вероятность угадать все однозначные цифры, из которых складывается номер машины? Или, чтобы вообще убрать теорию вероятности - из скольких числовых комбинаций мне нужно было выбрать одну?

Пожалуйста, подкрепите свои ответы и рассуждения какими-нибудь точными формулами, потому что мы вчера и так чуть не свихнулись. Заранее всем большое спасибо!

P.S. Один умный человек, программист, художник и изобретатель, только что очень верно подсказал правильное решение проблемы, подарив мне несколько минут прекрасного настроения: "решение задачи такое: у неё обсессивно-комп ульсивное расстройство, лечение такое: замуж и окучивать помидоры. меня бы больше на её месте волновал не вопрос «какова вероятность», а вопрос «схуя ли я обращаю внимание на все эти цифры»? В общем-то, даже нечего добавить:)

Калькулятор ниже предназначен для генерации всех сочетаний из n по m элементов.
Число таких сочетаний, как можно рассчитать с помощью калькулятора Элементы комбинаторики. Перестановки, размещения, сочетания.

Описание алгоритма генерации под калькулятором.

Алгоритм

Комбинации генерируются в лексикографическом порядке. Алгоритм работает с порядковыми индексами элементов множества.
Рассмотрим алгоритм на примере.
Для простоты изложения рассмотрим множество из пяти элементов, индексы в котором начинаются с 1, а именно, 1 2 3 4 5.
Требуется сгенерировать все комбинации размера m = 3.
Сначала инициализуется первая комбинация заданного размера m - индексы в порядке возрастания
1 2 3
Далее проверяется последний элемент, т. е. i = 3. Если его значение меньше n - m + i, то он инкрементируется на 1.
1 2 4
Снова проверяется последний элемент, и опять он инкрементируется.
1 2 5
Теперь значение элемента равно максимально возможному: n - m + i = 5 - 3 + 3 = 5, проверяется предыдущий элемент с i = 2.
Если его значение меньше n - m + i, то он инкрементируется на 1, а для всех следующих за ним элементов значение приравнивается к значению предыдущего элемента плюс 1.
1 (2+1)3 (3+1)4 = 1 3 4
Далее снова идет проверка для i = 3.
1 3 5
Затем - проверка для i = 2.
1 4 5
Потом наступает очередь i = 1.
(1+1)2 (2+1)3 (3+1)4 = 2 3 4
И далее,
2 3 5
2 4 5
3 4 5 - последнее сочетание, так как все его элементы равны n - m + i.

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

Исследователи из университета Кембриджа Sören Preibusch и Ross Anderson исправили ситуацию, опубликовав первый в мире количественный анализ сложности угадывания 4-циферного банковского PIN-кода.

Используя данные об утечках паролей из небанковских источников и онлайн анкетирование, учёные выяснили, что к выбору PIN-кодов пользователи относятся гораздо серьёзнее, чем к выбору паролей для веб-сайтов: большинство кодов содержат практически случайный набор цифр. Тем не менее, среди исходных данных присутствуют и простые комбинации, и дни рождения, - то есть, при некотором везении злоумышленник может просто угадать заветный код.

Отправной точкой исследования был набор 4-циферных последовательностей в паролях из базы RockYou (1.7 млн), и базы из 200 тысяч PIN-кодов от программы блокировки экрана iPhone (базу предоставил разработчик приложения Daniel Amitay). В графиках, построенных по этим данным, проступают интересные закономерности - даты, года, повторяющиеся цифры, и даже PIN-коды, заканчивающиеся на 69. На основе этих наблюдений учёные построили линейную регрессионную модель, которая оценивает популярность каждого PIN-кода в зависимости от 25 факторов, - например, является ли код датой в формате ДДММ, является ли он возрастающей последовательностью, и так далее. Этим общим условиям соответствуют 79% и 93% PIN-кодов в каждом из наборов.

Итак, пользователи выбирают 4-циферные коды на основе всего нескольких простых факторов. Если бы так выбирались и банковские PIN-коды, 8-9% из них можно было бы угадать всего за три попытки! Но, конечно, к банковским кодам люди относятся гораздо внимательнее. Ввиду отсутствия сколько-нибудь большого набора настоящих банковских данных, исследователи опросили более 1300 человек, чтобы оценить, насколько реальные PIN-коды отличаются от уже рассмотренных. Учитывая специфику исследования, у респондентов спрашивали не о самих кодах, а только о их соответствии какому-либо из вышеназванных факторов (возрастание, формат ДДММ, и т.д.).

Оказалось, что люди действительно гораздо тщательнее выбирают банковские PIN-коды. Примерно четверть опрошенных используют случайный PIN, сгенерированный банком. Более трети выбирают свой PIN-код, используя старый номер телефона, номер студенческого билета, или другой набор цифр, который выглядит случайным. Согласно полученным результатам, 64% владельцев карт используют псевдослучайный PIN-код, - это гораздо больше, чем 23-27% в предыдущих экспериментах с не-банковскими кодами. Ещё 5% используют цифровой паттерн (например, 4545), а 9% предпочитают паттерн на клавиатуре (например, 2684). В целом, злоумышленник с шестью попытками (три с банкоматом и три с платёжным терминалом) имеет меньше 2% шансов угадать PIN-код чужой карты.

Фактор Пример RockYou iPhone Опрос
Даты
ДДММ 2311 5.26 1.38 3.07
ДМГГ 3876 9.26 6.46 5.54
ММДД 1123 10.00 9.35 3.66
ММГГ 0683 0.67 0.20 0.94
ГГГГ 1984 33.39 7.12 4.95
Итого 58.57 24.51 22.76
Клавиатурный паттерн
смежные 6351 1.52 4.99 -
квадрат 1425 0.01 0.58 -
углы 9713 0.19 1.06 -
крест 8246 0.17 0.88 -
диагональная линия 1590 0.10 1.36 -
горизонтальная линия 5987 0.34 1.42 -
слово 5683 0.70 8.39 -
вертикальная линия 8520 0.06 4.28 -
Итого 3.09 22.97 8.96
Цифровой паттерн
заканчивается на 69 6869 0.35 0.57 -
только цифры 0-3 2000 3.49 2.72 -
только цифры 0-6 5155 4.66 5.96 -
повторяющиеся пары 2525 2.31 4.11 -
одинаковые цифры 6666 0.40 6.67 -
убывающая последовательность 3210 0.13 0.29 -
возрастающая последовательность 4567 3.83 4.52 -
Итого 15.16 24.85 4.60
Случайный набор цифр 23.17 27.67 63.68

Всё бы хорошо, но, к сожалению, существенная часть опрошенных (23%) выбирает PIN-код в виде даты, - и почти треть из них использует дату своего рождения. Это существенно меняет дело, ведь почти все (99%) респонденты ответили, что хранят в бумажнике с банковскими картами различные удостоверения личности, на которых эта дата напечатана. Если злоумышленник знает день рождения владельца карты, то при грамотном подходе вероятность угадывания PIN-кода взлетает до 9%.

100 самых популярных PIN-кодов

0000, 0101-0103, 0110, 0111, 0123, 0202, 0303, 0404, 0505, 0606, 0707, 0808, 0909, 1010, 1101-1103, 1110-1112, 1123, 1201-1203, 1210-1212, 1234, 1956-2015, 2222, 2229, 2580, 3333, 4444, 5252, 5683, 6666, 7465, 7667.

P.S. На практике, разумеется, злоумышленнику гораздо проще подсмотреть ваш PIN-код, чем угадывать его. Но и от подглядывания можно защититься - даже, казалось бы, в безвыходном положении:

В разделе на вопрос сколько комбинаций чисел возможно из четырех цифр заданный автором Осознанный лучший ответ это точный ответ 10 в степени 4

Ответ от Uvastorgi [гуру]
гараж хочешь вскрыть?))


Ответ от Вровень [гуру]
много-даже и не пытайся-


Ответ от Поросятина [активный]
эээ.... вроде как 16... или 12....=(


Ответ от Scandal [эксперт]
Более 16 миллиардов... ломал свой аккаунт однажды)) Получилось вот такая вот загогулина...


Ответ от Марк Геллерштейн [гуру]
Много


Ответ от Денис Набатчиков [гуру]
4^4 (4 в четвёртой степени. При условии, что есть 4 комбинации, где все 4 цифры повторяются, и также другие комбинации с повторяющимися цифрами. Плюс условие - если принимают участие только цифры от 1 до 4: 1,2,3,4). 256 комбинаций.
Если же в 4 поля можно ввести все 10 цифр (0-9) при прочих равных условиях, то комбинаций будет 10^4 = 10 000
Такими вещами занимается наука, называется комбинаторика.


Ответ от Александр [гуру]
какие цифры? от 1 до 9? или ль 0 до 9?


Ответ от Александр Коваленко [гуру]
Если цифры не повторятся - возможно 24 комбинаци...


Ответ от НенавижуВас Всех [гуру]
10000 комбинаций:
0000
0001
0002
(...)
9999



Ответ от Первый после Бога [мастер]
3024 комбинаторика форевер!!


Ответ от х [новичек]
При условии, что порядок чисел не важен - 340.
Объяснение:
Само по себе условие не совсем полное. Предположим, что у нас есть 4 разных (не повторяющихся) цифры из которых и нужно формировать комбинации. Учитывая, что длина комбинации не задана, то рассмотрим следующие варианты:
1. Длина комбинации 4 > 4^4=256 возможных вариантов
2. Длина комбинации 3 > 4^3=64
3. Длина комбинации 2 > 4^2=16.
4. Длина комбинации 1 > это просто 4 варианта (4 наших случайных не повторяющихся цифры).

Друзья! Раз уж есть у меня этот мертвый блокнот, использую-ка я его для того, чтобы задать вам задачку, над которой вчера билось три физика, два экономиста, один политеховский и один гуманитарий. Мы сломали себе весь мозг и у нас постоянно получаются разные результаты. Может быть, среди вас есть программисты и математические гении, к тому же, задачка вообще школьная и очень легкая, у нас просто не выводится формула. Потому что мы бросили занятия точными науками и вместо этого зачем-то пишем книги и рисуем картины. Простите.

Итак, предыстория.

Мне выдали новую банковскую карточку и я, как водится, играючи угадала ее пин-код. Но не подряд. В смысле, допустим, пин-код был 8794, а я назвала 9748. То есть, я триумфально угадала все цифры , которое содержались в данном четырехзначном числе. Ну да, не само число , а просто его составляющие у гадала. Но цифры-то все верные! ПРИМЕЧАНИЕ - я действовала наугад, то есть, мне не надо было расставить уже известные числа в нужном порядке , я просто действовала в духе: вот тут есть неизвестные мне четыре цифры, и я считаю, что среди них могут быть 9, 7, 4 и 8, а порядок их не важен. Мы тут же задались вопросом, сколько у меня вообще было вариантов (наверное, чтобы понять, насколько это круто, что я вот взяла и угадала). То есть, из скольких комбинаций четырех цифр мне нужно было выбирать? И тут, натурально, начался ад. У нас весь вечер взрывалась голова, и у всех, в итоге, вышли абсолютно разные варианты ответа! Я даже начала выписывать все эти комбинации в блокнот подряд по мере возрастания, но на четырех сотнях поняла, что их больше четырех сотен (во всяком случае, это опровергло ответ физика Трэша, который уверял меня, что комбинаций четыре сотни, но все равно это не совсем однозначно) - и сдалась.

Может случиться так, что даже супер-число попадает в игру, но это не обязательно. Разница между перестановкой слов или комбинацией состоит в основном в том порядке, в котором мы помещаем элементы, составляющие набор. Если порядок, в котором расположены элементы набора, не имеет значения, то мы скажем, что это комбинация.

Банан - клубника - яблоки или. Если порядок элементов множества имеет значение, то мы говорим, что это перестановка. Например, если мы используем ключ сейфа. Невозможно, чтобы его можно было открыть, если мы используем. Перестановки, в которых разрешено повторять элементы набора.

Собственно, суть вопроса. Какова вероятность угадывания (в любом порядке) четырех чисел, содержащихся в четырехзначном числе?

Или нет, переформулируем (я гуманитарий, простите, хотя к математике всегда питала огромную слабость), чтобы было яснее и четче. Сколько не повторяющихся комбинаций цифр содержится в ряду порядковых числительных от 0 до 9999? (пожалуйста, не путайте это с вопросом "сколько комбинаций не повторяющихся цифр"!! ! цифры могут повторяться! в смысле, 2233 и 3322 - это в данном случае одна и та же комбинация!!).

В примере безопасности ключ может быть 8 8 8. Если мы хотим знать, сколько перестановок с повторением можно получить, чтобы поместить ключ в сейф, тогда мы должны рассмотреть, сколько элементов можно разместить в каждой из позиций. Это означает, что мы можем разместить любое из 10 чисел в первой позиции, любое из 10 чисел во втором и любом из 10 чисел в третьем, так что у нас есть.

В первой позиции мы можем поместить любое из 10 чисел от 0 до. Для второй позиции мы можем поместить любое число, отличное от того, которое было помещено в первую позицию, то есть любое из 9 оставшихся чисел. Определение способов упорядочения в комбинации.

Или еще конкретнее. Мне нужно четыре раза угадать одну цифру из десяти. Но не подряд.

Ну или еще как-нибудь. В общем, нужно узнать, сколько у меня было вариантов числовой комбинации, из которой складывался пин-код карточки. Помогите, люди добрые! Только, пожалуйста, помогая, не начинайте сразу писать, что вариантов этих 9999 (вчера такое всем приходило в голову поначалу), потому что это же глупости - ведь в том ракурсе, который нас волнует, число 1234, число 3421, число 4312 и так далее являются одним и тем же! Ну и да, цифры же могут повторяться, ведь бывает пин-код 1111 или там, например, 0007. Можно представить вместо пин-кода номер машины. Допустим, какова вероятность угадать все однозначные цифры, из которых складывается номер машины? Или, чтобы вообще убрать теорию вероятности - из скольких числовых комбинаций мне нужно было выбрать одну?

Мы определяем, сколько способов мы можем упорядочить группу г элементов. Наконец, применим следующую формулу. Есть 8 человек, чтобы сформировать комитет из пяти человек. Сколько существует различных возможностей для формирования комитета? Это комбинация, потому что порядок членов комитета не имеет значения.

В позиции 1 может быть любой из 8 членов комитета. Поскольку любой член комитета может находиться только в одной позиции за раз, то во второй позиции может попасть любой из остальных 7 членов. Третья позиция может идти только из одного из оставшихся 6 членов и т.д.

Пожалуйста, подкрепите свои ответы и рассуждения какими-нибудь точными формулами, потому что мы вчера и так чуть не свихнулись. Заранее всем большое спасибо!

P.S. Один умный человек, программист, художник и изобретатель, только что очень верно подсказал проблемы, подарив мне несколько минут прекрасного настроения: "решение задачи такое: у неё обсессивно-комп ульсивное расстройство, лечение такое: замуж и окучивать помидоры. меня бы больше на её месте волновал не вопрос «какова вероятность», а вопрос «схуя ли я обращаю внимание на все эти цифры»? В общем-то, даже нечего добавить:)

Мы указываем, что комитет будет состоять всего из 5 членов, мы определяем, сколько способов мы можем заказать группу 5 элементов. Поскольку комитет сформирован с 5 членами 8, которые могут быть в этом комитете, мы должны. 8-5 = 3, и мы рассчитали, как можно было бы заказать эти 3 оставшихся члена.

Наконец, применим формулу. Вопрос: Сколько разных способов вы можете заказать 16 бильярдных мячей? Помните, что каждый шар может занимать одну позицию, например, если в первой позиции появляется шар 14, этот шар больше не может занимать другую позицию.

Источник отчета не может быть более надежным. В школьном портфолио у нас есть четыре книги разных предметов, уложенных сверху вниз в этом точном порядке. Португальский, математика, история и география. В том числе и в текущем порядке, сколько всего можно собрать в этом кошельке такие книги?

Калькулятор ниже предназначен для генерации всех сочетаний из n по m элементов.
Число таких сочетаний, как можно рассчитать с помощью калькулятора Элементы комбинаторики. Перестановки, размещения, сочетания.

Описание алгоритма генерации под калькулятором.

Алгоритм

Комбинации генерируются в лексикографическом порядке. Алгоритм работает с порядковыми индексами элементов множества.
Рассмотрим алгоритм на примере.
Для простоты изложения рассмотрим множество из пяти элементов, индексы в котором начинаются с 1, а именно, 1 2 3 4 5.
Требуется сгенерировать все комбинации размера m = 3.
Сначала инициализуется первая комбинация заданного размера m - индексы в порядке возрастания
1 2 3
Далее проверяется последний элемент, т. е. i = 3. Если его значение меньше n - m + i, то он инкрементируется на 1.
1 2 4
Снова проверяется последний элемент, и опять он инкрементируется.
1 2 5
Теперь значение элемента равно максимально возможному: n - m + i = 5 - 3 + 3 = 5, проверяется предыдущий элемент с i = 2.
Если его значение меньше n - m + i, то он инкрементируется на 1, а для всех следующих за ним элементов значение приравнивается к значению предыдущего элемента плюс 1.
1 (2+1)3 (3+1)4 = 1 3 4
Далее снова идет проверка для i = 3.
1 3 5
Затем - проверка для i = 2.
1 4 5
Потом наступает очередь i = 1.
(1+1)2 (2+1)3 (3+1)4 = 2 3 4
И далее,
2 3 5
2 4 5
3 4 5 - последнее сочетание, так как все его элементы равны n - m + i.

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

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

Все N элементов, и ни один не повторяется, то это задача о количестве перестановок. Решение можно найти простым . На первом месте в ряду может стоять любой из N элементов, следовательно, получается N вариантов. На втором месте - любой, кроме того, который уже был использован для первого места. Следовательно, для каждого из N уже найденных вариантов есть (N - 1) вариантов второго места, и общее количество комбинаций становится N*(N - 1).
Это же можно повторить для остальных элементов ряда. Для самого последнего места остается только один вариант - последний оставшийся элемент. Для предпоследнего - два варианта, и так далее.
Следовательно, для ряда из N неповторяющихся элементов возможных перестановок равно произведению всех целых от 1 до N. Это произведение называется факториалом числа N и обозначается N! (читается «эн факториал»).

В предыдущем случае количество возможных элементов и количество мест ряда совпадали, и их число было равно N. Но возможна ситуация, когда в ряду меньше мест, чем имеется возможных элементов. Иными словами, количество элементов в выборке равно некоторому числу M, причем M < N. В этом случае задача определения количества возможных комбинаций может иметь два различных варианта.
Во-первых, может потребоваться сосчитать общее количество возможных способов, которыми можно выстроить в ряд M элементов из N. Такие способы называются размещениями.
Во-вторых, исследователя может интересовать число способов, которыми можно выбрать M элементов из N. При этом порядок расположения элементов уже не важен, но любые два варианта должны различаться между собой хотя бы одним элементом. Такие способы называются сочетаниями.

Чтобы найти количество размещений по M элементов из N, можно прибегнуть к такому же способу рассуждений, как и в случае с перестановками. На первом месте здесь по-прежнему может стоять N элементов, на втором (N - 1), и так далее. Но для последнего места количество возможных вариантов равняется не единице, а (N - M + 1), поскольку, когда размещение будет закончено, останется еще (N - M) неиспользованных элементов.
Таким образом, число размещений по M элементов из N равняется произведению всех целых чисел от (N - M + 1) до N, или, что то же самое, частному N!/(N - M)!.

Очевидно, что количество сочетаний по M элементов из N будет меньше количества размещений. Для каждого возможного сочетания есть M! возможных размещений, зависящих от порядка элементов этого сочетания. Следовательно, чтобы найти это количество, нужно разделить число размещений по M элементов из N на N!. Иными словами, количество сочетаний по M элементов из N равно N!/(M!*(N - M)!).

Понравилась статья? Поделиться с друзьями: