Как определить, выбрана ли конкретная цель пользователем по данным из таблицы аналитиков, используя двоичные коды целей и числовое представление в таблице? Какую формулу можно использовать, учитывая, что доступны только операции выделения целой части, умножения, деления, сложения, вычитания и возведения в степень?
Для решения этой задачи можно использовать формулу для вычисления контрольной суммы. Контрольная сумма - это число, которое вычисляется на основе других данных (например, двоичных кодов целей и числового представления целей) и позволяет определить их целостность. Одним из способов реализации контрольной суммы является использование алгоритма CRC (циклическое избыточное кодирование). Для этого каждая цель (в виде строки двоичных чисел) преобразуется в числовое представление, затем все числа складываются и вычитается целая часть от деления этой суммы на некоторое большое число. Полученный результат будет контрольной суммой. Для определения, выбрана ли конкретная цель пользователем по данным из таблицы аналитиков, достаточно вычислить контрольную сумму для всех целей и сравнить ее с контрольной суммой, предоставленной пользователем. Если они совпадают, то цель выбрана, иначе - нет.
function int(x) { return Math.floor(x); } function check(x, i) { const v = int(x / 2 ** (i - 1)); return v - int(v / 2) * 2; }
Здесь ** - степень, её приоритет выше чем у деления, там х делится на 2 в степени..
возвращает 1, если выбрано, и 0, если не выбрано.
i нумеруется с единицы