Комбинаторика …

Привет всем.

В FB3 (13-протокол) сделали «упакованную» передачу для NULL-индикаторов. Раньше каждый индикатор передавался по-отдельности как SHORT-значение. Теперь все индикаторы передаются через битовый массив.

Ну ладно, реализовал этот формат. Теперь надо бы это все проверить. Желательно — через перебор максимально доступного диапазона.

Исходные данные — у нас F колонок, из них N с NULL-значениями.

Накатал тест, в котором перебираются F: [1..33], N: [1..min(F,9)]. Максимальные цифры подобрал «на глазок» — чтобы перекрыть подозрительные случаи.

Запустил перебор — 8 потоков на Core i7.

За ночь оно добралось до F=32, N=9. Логи показывают, что каждый поток отрабатывает ~миллион вариантов за час.

Поскрипел мозгами — вывел формулу количества комбинаций для F>N: (F!)/(N!*(F-N)!).

Для F=33, N=9 число комбинаций равно «38 567 100». То есть — 38 часов, Карл.

Что-то как-то долго получается. Эту цифру надо же еще умножить на 3 типа протокола. И еще на 2 — реверсный тест (в котором N — это NOT NULL значения).

Похоже, придется идти в аптеку. За таблетками от жадности…

Leave a Comment