Комбинаторика …
Привет всем.
В 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 значения).
Похоже, придется идти в аптеку. За таблетками от жадности…