Язык СИ. Задана матрица целых чисел A(n ×m). Сформировать массив B(m), каждый элемент которого равен количеству положительных чисел с суммой цифр, кратной трём в соответствующем столбце матрицы. Найти строку с максимальным произведением элементов.
Если код равномерный двоичный, а мощность алфавита 26 символов, нужно подобрать такое количество бит (двоичных разрядов), чтобы оно могло вместить 26 комбинаций.
1 бит - 2 комбинации (2¹ = 2)
2 бита - 4 комбинации (2² = 4)
3 бита - 8 комбинаций (2³ = 8)
4 бита - 16 комбинаций (2⁴ = 16)
5 бит - 32 комбинации (2⁵ = 32)
Видно, что 4 бита мало, а 5 бит кодируют даже не 26, а 32 комбинации. Следовательно, под код одного символа нужо 5 бит.
А если символов 20, то в 20 раз больше. 5×20 = 100 бит. Это и есть нужная нам длина.
javascript:var массив = [], макс_зн, макс_ном, мин_зн, мин_ном; for (let сч = 0; сч < 10; сч++) массив.push((function (от, до) { return Math.round(от - 0.5 + Math.random() * (до - от + 1)); })(-10, 10)); массив.forEach(function (зн, ном) { if (ном == 0) { макс_зн = зн; макс_ном = 0; мин_зн = зн; мин_ном = 0; } else { if (зн > макс_зн) { макс_зн = зн; макс_ном = ном; } else if (зн < мин_зн) { мин_зн = зн; мин_ном = ном; } } }); alert(макс_зн + " (" + макс_ном + "); " + мин_зн + " (" + мин_ном + ")");
Все просто.
Если код равномерный двоичный, а мощность алфавита 26 символов, нужно подобрать такое количество бит (двоичных разрядов), чтобы оно могло вместить 26 комбинаций.
1 бит - 2 комбинации (2¹ = 2)
2 бита - 4 комбинации (2² = 4)
3 бита - 8 комбинаций (2³ = 8)
4 бита - 16 комбинаций (2⁴ = 16)
5 бит - 32 комбинации (2⁵ = 32)
Видно, что 4 бита мало, а 5 бит кодируют даже не 26, а 32 комбинации. Следовательно, под код одного символа нужо 5 бит.
А если символов 20, то в 20 раз больше. 5×20 = 100 бит. Это и есть нужная нам длина.