Здесь могла быть ваша реклама
Шучу, не могла. Всем привет, меня зовут Мынка, и я снова страдаю ебучей хуйнёй пишу статью. Я тут взял и решил, что по пятницам, субботам и воскресеньям я отдыхаю от паблика. Чтобы не терять интерес к работе. Так что в эти дни максимум могу опубликовать мем или статью, но я бы на вашем месте особо этого не ждал. Ну и рассчитывайте, что в неделю будет выходить около 1 статьи. Мне кажется, это вполне нормально, всё равно чаще не выходит.
Короче вот. Технические вопросы обсудили, а теперь к теме.
Помнится вам, а мне не помнится, я точно знаю, что на днях я предложил вам решить задачку.
Вообще-то, изначально условие было другим — совершенно непродуманным и тупым. Хочу сказать спасибо доброму человеку, указавшему на это
Условия я после этого изменил и теперь пишу разбор уже к новому условию. Я её прикрепил там выше, ну вы видели
Для начала решим первую часть. Тут, в общем-то, действительно несложно. Вы догадываетесь, что правильное время — одно-единственное, так что в числителе мы запишем 1.
Со знаменателем посложнее. Нам нужно посчитать количество возможных вариантов в целом. Для этого будем думать.
- Число для секунд не зависит от других величин. Оно может принимать значения от 00 до 59.
- Число для минут не зависит от других величин. Оно может принимать значения от 00 до 59.
- Число для часов не зависит от других величин. Оно может принимать значения от 00 до 24.
- Число для дней зависит от числа для месяцев и числа для лет. Удобнее всего вместо дней и месяцев считать их общим числом. 365 для невисокосных лет, 366 для високосных.
- Тогда годы нужно разделить на високосные и невисокосные. Было бы легко, если бы они все были в одном веке, но мы рассматриваем целое тысячелетие, поэтому тут сложнее.
2004 … 2096 — 24 високосных года
2104 … 2196 — 24 високосных года
…
2904 … 2996 — 24 високосных года
То есть 24*10 = 240 високосных лет. И ещё 2400, 2800. Остальные — невисокосные. Я мог посчитать 2000, но многие считают, и, кстати, в Википедии тоже так написано, (хотя в этом вопросе я бы не стал ей верить полностью), что 2000 год — это прошлое тысячелетие.
Итого имеем 242 високосных года и 1000-242 = 758 невисокосных.
В этом тысячелетии будет всего 366*242 + 365*758 дней. Это может показаться мистикой, но это = 365 242. Прикольно, правда. Хотя, в принципе, логично, мы же по сути умножили 365 на 1000 и прибавили 242 единицы.
Хорошо, теперь посчитаем, сколько секунд в одних сутках, и можно считать первую часть задачи решённой.
60*60*24 = 86 400
И тогда вероятность того, что коварный Мынка сказал правду, будет
1 / (365 242 * 86 400) =
1 / 31 556 908 800.
Это примерно 3,17 * 10^-11
Короче, не надейтесь, Мынка вам не скажет правду.
Теперь ко второй части.
Под условием «не делится на 318864601» я имел ввиду, что число не содержит нулей. На самом деле, чтобы обозначить это, я мог написать просто «не делится на 11». Потому что, чтобы произведение делилось на 11, среди множителей должны быть все делители числа 11 или числа, которые делятся на все делители 11. Но 11 — простое число, а все множители у нас однозначные, так что хуй.
Почему я взял число 318864601 я не помню, скорее всего, я присвоил всем цифрам их максимальные значения, перемножил и прибавил 1. Это, к сожалению, не простое число, но все его делители больше 10, так что заебись.
В общем, суть одна: нас интересуют только те числа, в которых нет нулей.
Знаменатель нам уже известен. Нас интересует теперь числитель.
Как его считать, если честно, я не знаю, но сейчас придумаем. Это весьма сложно.
Начнём с того, что чтобы произведение цифр числа делилось на 2^11, оно должно содержать:
- Либо 11 двоек или больше
- Либо 11 шестёрок или больше
- Либо 5 двоек и 6 шестёрок или больше
- Либо 5 четвёрок и 1 двойку
- Либо 3 восьмёрки и 1 двойку
- Либо какие-то совершенно другие комбинации
Поэтому мы снова разбиваем наше число на секунды, минуты, часы и так далее.
- Секунды.
00-10, 20, 30, 40, 50 содержат ноль. Не подходит в принципе
11, 13, 15, 17, 19, 31, 33, 35, 37, 39, 51, 53, 55, 57, 59 содержат 0 степеней двойки
12, 16, 21, 23, 25, 27, 29, 32, 36, 52, 56 содержат 1 степень двойки
14, 22, 26, 34, 41, 43, 45, 47, 49, 54 содержат 2 степени двойки
18, 24, 38, 42, 46, 58 содержат 3 степени двойки
28, 44 содержат 4 степени двойки
48 содержит 5 степеней двойки
15 не подходит
15 — 0
11 — I
10 — II
6 — III
2— IV
1 — V
Арабскими цифрами обозначено количество вариантов, римскими — степень двойки. Можете сложить арабские, должно получиться 60.
- Минуты.
С минутами всё точно так же, как и с секундами.
15 не подходит
15 — 0
11 — I
10 — II
6 — III
2— IV
1 — V
- Часы.
00-10, 20 не подходят
11, 13, 15, 17, 19 содержат 0 степеней двойки
12, 16, 21, 23 содержат 1 степень двойки
14, 22 содержат 2 степени двойки
18 содержит 3 степени двойки
12 не подходит
5 — 0
4 — I
2 — II
1 — III
Ну вы видите, в сумме 24, так что всё верно
Что будем делать с днями, месяцами и годами?
Рассматривать их вместе, наверное. Но нет, давайте подумаем.
Все месяцы с 01 до 10 нам не подходят. Остаются только 11 и 12. То есть ноябрь и декабрь. Февраля, как вы видите, нет, так что от года мы не зависим.
В ноябре 30 дней.
В декабре 31 день.
Рассмотрим дни от 01 до 30. 00 дня не существует.
01-10, 20, 30 не подходят
11, 13, 15, 17, 19 содержат 0 степеней двойки
12, 16, 21, 23, 25, 27, 29 содержат 1 степень двойки
14, 22, 26 содержат 2 степени двойки
18, 24 содержат 3 степени двойки
28 содержит 4 степени двойки
12 не подходят
5 — 0
7 — I
3 — II
2 — III
1 — IV
В сумме 30, так что всё верно
Теперь сразу сюда прилепим месяцы. Ноябрь оставит всё как есть, а декабрь увеличит степень двойки у каждых на I. Тогда
24 не подходят
5 — 0
7+5 = 12 — I
3+7 = 10 — II
2+3 = 5 — III
1+2 = 3 — IV
1 — V
Сложим, получим 60. Остаётся только добавить сюда 31 декабря. Это 3112, то есть I. Итог:
5 — 0
13 — I
10 — II
5 — III
3 — IV
1 — V
Остались годы. На первый взгляд перебрать 1000 вариантов выглядит сложным, но на самом деле не очень.
Сразу заметим, что 3000 нам не подходит, поэтому мы можем рассматривать только
2001 — 2999
Ну, ещё заметим, что 2 в начале числа у нас сохраняется всегда. Так что, чтобы занимать меньше места, будем писать
001 — 999, и оставим в уме +I
Итак, теперь перебор.
Я не хочу писать, какие именно числа нам не подходят, просто будем откидывать все, в которых есть нули.
111, 113, 115, 117, 119
131, 133, 135, 137, 139
151… [25 чисел]
311, 313, 315, 317… [25 чисел]
511
711
911
Всего 125 чисел — 0
112, 116,
121, 123, 125, 127, 129,
132, 136,
152, 156,
161, 163, 165, 167, 169,
172, 176,
192, 196 [20 вариантов]
Для 312…, 512…, 712…, 912… тоже по 20 вариантов. Пока 100
211, 213, 215, 217, 219… [25 вариантов]
611 [25 вариантов]
Всего 150 чисел — I
114,
122, 126,
134,
141, 143, 145, 147, 149,
154,
162, 166,
174,
194 [14 вариантов]
Для 314…, 514…, 714…, 914… тоже по 14 вариантов. Пока 70
212, 216… [20 вариантов]
612, 616… [20 вариантов]
411, 413, 415… [25 вариантов]
Всего 135 чисел — II
118,
124,
138,
142, 146,
158,
164,
178,
181, 183, 185, 187, 189
198 [14 вариантов]
Для 318, 518, 718, 918 тоже 14 вариантов. Пока 70
214… [14 вариантов]
614… [14 вариантов]
412… [20 вариантов]
811… [25 вариантов]
Всего 143 чисел — III
128,
144,
168,
182, 186 [5 вариантов]
Для 328, 528, 728, 928 тоже по 5 вариантов. То есть 25
218… [14 вариантов]
618… [14 вариантов]
414… [14 вариантов]
812… [20 вариантов]
Если кто не понимает, почему я почти перестал перебирать — я просто смотрю в свои прошлые переборы.
Всего 87 чисел — IV.
148,
184 [2 варианта]
Для 348, 548, 748, 948 тоже 2 варианта. Пока 10
Для 228, 628 по 5 вариантов. Ещё 10
Для 418 — 14 вариантов.
Для 814 — 14 вариантов.
Всего 48 чисел — V.
188 [1 вариант]
Для 388, 588, 788, 988 по 1 варианту. Всего 5
Для 248, 648 по 2 варианта. Ещё 4
428 — 5 вариантов
818 — 14 вариантов
Всего 28 чисел — VI
1 + 1 + 2 + 5 = 9 — VII
1 + 2 = 3 — VIII
1 — IX
Ура, готово.
Подведём мини-итог:
125 — 0
150 — I
135 — II
143 — III
87 — IV
48 — V
28 — VI
9 — VII
3 — VIII
1 — IX
В сумме 729. Это, к слову, 9³, так что всё верно.
Теперь вспоминаем, что вообще-то мы обсуждаем тысячелетие, которое начинается с гордой цифры 2, поэтому ко всем нашим римским цифрам добавляем I.
125 — I
150 — II
135 — III
143 — IV
87 — V
48 — VI
28 — VII
9 — VIII
3 — IX
1 — X
Итак, предварительные работы окончены. Переходим к следующему этапу.
Давайте построим таблицу из того, что мы уже знаем. Для удобства, введём что
А — секунды
В — минуты
С — часы
D — дни-месяцы
E — годы
Ну и напоминаю, римскими цифрами я обозначаю степень двойки, арабскими — сколько соответствующих вариантов. Для общего развития, римскими цифрами 0 можно обозначать как N, то есть nihil — ничего. Но я буду писать просто 0, это тоже допустимо.
Теперь давайте смотреть.
Для 0 0 0 0 … решений нет
Для 0 0 0 I … решение только одно — 0 0 0 I X
Для 0 0 0 II … решения два — 0 0 0 II X и 0 0 0 II IX
А можно считать это как 0 0 0 II (IX+X)
Я имею ввиду, складывать значения в этих клетках, а не номера клеток. Блять, надеюсь, вы поняли. Это охереть как просто, но я хз, как объяснить нормально.
То есть, по сути, нам просто нужно такое Е, при котором для конкретных А, В, С, D в сумме римскими цифрами будет 11. Все клетки в столбце по Е тогда тоже подойдут, так как у них этот показатель больше.
Давайте в столбике Е посчитаем суммы:
X + IX
X + IX + VIII
X + IX + VIII + VII …
Ну это соответственно:
1 + 3 = 4
4 + 9 = 13
13 + 28 = 41
41 + 48 = 89
89 + 87 = 176
176 + 143 = 319
319 + 135 = 454
454 + 150 = 604
604 + 125 = 729
Давайте каждое из них назовём d[n]
d[1] = 1
d[2] = 4
d[3] = 13
d[4] = 41
d[5] = 89
d[6] = 176
d[7] = 319
d[8] = 454
d[9] = 604
d[10] = 729
И тогда мы будем писать так:
15*15*5*5*d[1] +
15*15*5*13*d[2] +
15*15*5*10*d[3] +
15*15*5*5*d[4] +
15*15*5*3*d[5] +
15*15*5*1*d[6] +
15*15*4*5*d[2] +
15*15*4*13*d[3] +
…
Иначе это можно записать так:
15*15*5*(5d[1] + 13d[2] + 10d[3] + 5d[4] + 3d[5] + d[6]) +
15*15*4*(5d[2] + 13d[3] + 10d[4] + 5d[5] + 3d[6] + d[7]) +
15*15*2*(5d[3] + 13d[4] + 10d[5] + 5d[6] + 3d[7] + d[8]) +
15*15*1*(5d[4] + 13d[5] + 10d[6] + 5d[7] + 3d[8] + d[9]) +
15*11*5*(5d[2] + 13d[3] + 10d[4] + 5d[5] + 3d[6] + d[7]) +
15*11*4*(5d[3] + 13d[4] + 10d[5] + 5d[6] + 3d[7] + d[8]) …
Как вы видите, скобки стали повторяться, что логично. Давайте теперь заменим все эти скобки на какие-то с[k]
c[1] = 5d[1] + 13d[2] + 10d[3] + 5d[4] + 3d[5] + d[6]
c[2] = 5d[2] + 13d[3] + 10d[4] + 5d[5] + 3d[6] + d[7]
c[3] = 5d[3] + 13d[4] + 10d[5] + 5d[6] + 3d[7] + d[8]
c[4] = 5d[4] + 13d[5] + 10d[6] + 5d[7] + 3d[8] + d[9]
c[5] = 5d[5] + 13d[6] + 10d[7] + 5d[8] + 3d[9] + d[10]
c[6] = 5d[6] + 13d[7] + 10d[8] + 5d[9] + 3d[10] + d[10]
Упс. А почему 10? Почему не 11? Ну, потому что больше 10 у нас вариантов нет. Так что дальше просто везде будет оставаться 10.
c[7] = 5d[7] + 13d[8] + 10d[9] + 5d[10] + 3d[10] + d[10]
c[8] = 5d[8] + 13d[9] + 10d[10] + 5d[10] + 3d[10] + d[10]
c[9] = 5d[9] + 13d[10] + 10d[10] + 5d[10] + 3d[10] + d[10]
c[10] = 5d[10] + 13d[10] + 10d[10] + 5d[10] + 3d[10] + d[10]
Давайте сразу посчитаем все эти с, чтобы потом не возвращаться. Берём в руки калькулятор и подставляем наши d. Либо просто списываем у меня, хотя я мог где-нибудь ошибиться, если хотите, проверьте.
c[1] = 835
c[2] = 1891
c[3] = 3779
c[4] = 6683
c[5] = 10734
c[6] = 15503
c[7] = 20098
c[8] = 23973
c[9] = 26348
c[10] = 26973
Не обижайтесь, если я где-то что-то написал не так, мне важнее сам принцип.
Итак, мы пришли к тому, что нашу сумму можно записывать так:
15*15*5*с[1] +
15*15*4*с[2] +
15*15*2*с[3] +
15*15*1*с[4] +
15*11*5*с[2] +
15*11*4*с[3] + …
Уже проще, но ведь это можно записать как:
15*15*(5с[1] + 4c[2] + 2c[3] + c[4]) +
15*11*(5с[2] + 4c[3] + 2c[4] + c[5]) +
15*10*(5с[3] + 4c[4] + 2c[5] + c[6]) +
15*6*(5с[4] + 4c[5] + 2c[6] + c[7]) +
15*2*(5с[5] + 4c[6] + 2c[7] + c[8]) +
15*1*(5с[6] + 4c[7] + 2c[8] + c[9]) +
11*15*(5с[2] + 4c[3] + 2c[4] + c[5]) +
…
Круто, да? Снова введём замену, в этот раз это будет число b.
b[1] = 5c[1] + 4c[2] + 2c[3] + c[4]
b[2] = 5c[2] + 4c[3] + 2c[4] + c[5]
…
b[10] = 5c[10] + 4c[10] + 2c[10] + c[10]
Как это делается, вы уже должны были понять, поэтому я просто напишу, чему эти b у меня получились равны.
b[1] = 25 980
b[2] = 48 671
b[3] = 82 598
b[4] = 127 455
b[5] = 179 851
b[6] = 222 201
b[7] = 276 051
b[8] = 306 176
b[9] = 320 551
b[10] = 323 676
Опять же, я мог на калькуляторе забыть нажать какую-нибудь циферку, и всё могло съехать. Очень надеюсь, что этого не случилось.
Записываем всё через b.
15*15*b[1] +
15*11*b[2] +
15*10*b[3] +
15*6*b[4] +
15*2*b[5] +
15*1*b[6] +
11*15*b[2] +
11*11*b[3] …
И снова, по аналогии:
15*(15b[1] + 11b[2] + 10b[3] + 6b[4] + 2b[5] + b[6]) +
11*(15b[2] + 11b[3] + 10b[4] + 6b[5] + 2b[6] + b[7]) +
10*(15b[3] + 11b[4] + 10b[5] + 6b[6] + 2b[7] + b[8]) +
6*(15b[4] + 11b[5] + 10b[6] + 6b[7] + 2b[8] + b[9]) +
2*(15b[5] + 11b[6] + 10b[7] + 6b[8] + 2b[9] + b[10]) +
1*(15b[6] + 11b[7] + 10b[8] + 6b[9] + 2b[10] + b[10]) +
Введём последнюю замену a.
a[1] = 15b[1] + 11b[2] + 10b[3] + 6b[4] + 2b[5] + b[6]
a[2] = 15b[2] + 11b[3] + 10b[4] + 6b[5] + 2b[6] + b[7]
a[3] = 15b[3] + 11b[4] + 10b[5] + 6b[6] + 2b[7] + b[8]
a[4] = 15b[4] + 11b[5] + 10b[6] + 6b[7] + 2b[8] + b[9]
a[5] = 15b[5] + 11b[6] + 10b[7] + 6b[8] + 2b[9] + b[10]
a[6] = 15b[6] + 11b[7] + 10b[8] + 6b[9] + 2b[10] + b[10]
Дальше они, в теории, есть, но нам они не нужны.
a[1] = 3 097 694
a[2] = 4 712 752
a[3] = 6 630 969
a[4] = 8 701 405
a[5] = 10 704 320
a[6] = 12 325 670
Итак, мы приблизились к финишной черте. В числитель нашей вероятности мы запишем
15a[1] + 11a[2] + 10a[3] + 6a[4] + 2a[5] + a[6] =
250 558 112
Напоминаю, что в знаменателе у нас
31 556 908 800,
то есть число на два порядка большее. В общем-то, это вполне адекватно, так как гигантская часть дат и времени содержит цифру 0, и довольно значительная часть из оставшихся не содержит достаточного количества степеней двойки.
250 558 112 / 31 556 908 800 =
7 829 941 / 986 153 400
Может можно сократить ещё, но я этого не вижу. В общем-то, это что-то вроде
0,008, или
0,8%
По сравнению с первой частью задачи, это внушительное число.
Задача вышла интересной, а самое главное — коммунистической [к сожалению, нет]. Но, на самом деле, она довольно сложная. В плане обработки данных. Когда я публиковал её, и даже когда начинал писать статью, я не знал, как её решать. Но вот получилось. Я горд за себя, надеюсь, вы тоже горды за меня.
Кстати, если интересно, недавно писал САММАТ, могу скинуть задания в лс.
