29/04/13 8307 Богородский
|
Последний раз редактировалось Yadryara 04.05.2024, 10:51, всего редактировалось 1 раз.
Да, но короткие или пустые Map отрабатываются моментально, так что на скорость работы не влияют. Ну вот я думал-думал, и так и решил, что это на всякий случай добавлено. То самое неудобство вникания в чужой код. Да ладно, уж vector точно знали, да и Vecrev наверняка, и fromdigits мелькала уже сколько раз. Обычный vector знал, а про тот, который с 3 аргументами только смутно что-то припоминал. Много что много где мелькает... Но вроде бы не у меня в коде. Ну вроде разобрался что к чему: (Немало цифр)
Код: p = 2
Невозможный остаток по модулю 2 для 0-й позиции паттерна [0, 12, 24] :
0, 12, 24 + 0, 0, 0 _________________ 0 12 24 mod 2 0 0 0
Единственный годный остаток по модулю 2 для 0-й позиции этого паттерна:
m = [0, 1] - [0] = [1]
Все возможные позиции грязных чисел для этого же паттерна:
a = [2, 4, 6, 8,10,14,16,18,20,22]
2, 4, 6, 8,10,14,16,18,20,22 + 1 __________________________________________ 3 5 7 9 11 15 17 19 21 23 mod 2 > 0 ? 1 1 1 1 1 1 1 1 1 1 --> revers --> 1023
Одна расстановка грязных чисел: am = [1023]
p = 3
Невозможный остаток по модулю 3 для 0-й позиции паттерна [0, 12, 24] :
0, 12, 24 + 0, 0, 0 _________________ 0 12 24 mod 3 0 0 0
Все годные остатки по модулю 3 для 0-й позиции этого паттерна:
m = [0, 1, 2] - [0] = [1, 2]
2, 4, 6, 8,10,14,16,18,20,22 + 1 __________________________________________ 3 5 7 9 11 15 17 19 21 23 mod 3 > 0 ? 0 1 1 0 1 0 1 1 0 1 --> revers --> 726
2, 4, 6, 8,10,14,16,18,20,22 + 2 __________________________________________ 4 6 8 10 12 16 18 20 22 24 mod 3 > 0 ? 1 0 1 1 0 1 0 1 1 0 --> revers --> 429
Две расстановки грязных чисел: am = [726, 429]
p = 5
Невозможные остатки по модулю 5 для 0-й позиции паттерна [0, 12, 24] :
0, 12, 24 + 0, 3, 1 _________________ 0 15 25 mod 5 0 0 0
Все годные остатки по модулю 5 для 0-й позиции этого паттерна:
m = [0, 1, 2, 3, 4] - [0, 1, 3] = [2, 4]
2, 4, 6, 8,10,14,16,18,20,22 + 2 __________________________________________ 4 6 8 10 12 16 18 20 22 24 mod 5 > 0 ? 1 1 1 0 1 1 1 0 1 1 --> revers --> 887
2, 4, 6, 8,10,14,16,18,20,22 + 4 __________________________________________ 6 8 10 12 14 18 20 22 24 26 mod 5 > 0 ? 1 1 0 1 1 1 0 1 1 1 --> revers --> 955
Две расстановки грязных чисел: am = [887, 955]
2, 4, 6, 8,10,14,16,18,20,22 ______________________________________________ + 1 mod 3 > 0 ? 0 1 1 0 1 0 1 1 0 1 --> revers --> 726 bitand + 2 mod 5 > 0 ? 1 1 1 0 1 1 1 0 1 1 --> revers --> 887 ______________________________________________ 0 1 1 0 1 0 1 0 0 1 -------------> 598
Только пока не понял для чего реверс нужен. На виндовском калькуляторе в режиме "Программист" проверял bitand. Там это просто кнопка "And".
|
|