Так что я функционально знаю, чего бы я хотел, но я просто не знаю, как заставить компьютер делать это ... в C ++ ...
Я бы хотел реализовать C ++функция, которая отображает 10-битную последовательность в 6-битную последовательность.
Не имеет значения, что означают биты прямо сейчас ... Есть 2 ^ 10 = 1024 возможных входов.Есть 2 ^ 6 = 64 разных выходов.Вероятно, много моделей.Очевидно, много моделей.Но это сложно.Это известное отображение, просто сложное отображение.
Вывод - только одна из 64 возможностей.Может быть, они все не привыкли.Они, вероятно, не будут.Но предположим, что это так.
Прямо сейчас я думаю о четырехкратном вложенном операторе switch, который просто заботится о каждом из 1024 случаев и заботится о внутреннем бизнесе, присваивая соответствующие значения любому указателю на любую структуру, которую яперешел к этой функции.Это кажется наивным и медленным.Не то чтобы я это реализовал, но поэтому я хочу сначала спросить вас.
Эта базовая функция (отображение) должна будет выполняться на каждом узле оператора, часто более одного раза, для стольких операторов, сколько этоСистема желает поддержать.Я спрашиваю вас, как я могу максимально эффективно отобразить 10 битов в 6 битов в C ++?
Я знаю, что такое отображение, я знаю, какие входы 10 битов идут с каким выходом 6 битов ...Я мог бы полностью жестко закодировать это ... как-нибудь?Мульти-переключатель так безобразен.Как я могу отобразить свои 10 бит на 6 бит ?!Нейронная сеть?Маффин памяти?Что бы вы сделали?
Примечание для себя: Так вот почему я не фанат таблицы поиска.Давайте предположим, что все входные данные одинаково вероятны (конечно, это не так, и их можно было бы упорядочить более эффективно, но все же), тогда для извлечения выходных значений потребуется в среднем 512 разрядов памяти массива ... Кажется, что если вы сделаете(глобальное, почему бы и нет) двоичное дерево глубиной 10 уровней, вы покрываете 1024 входа и можете получить выходные данные в среднем всего за 10 шагов ... и, возможно, меньше, если есть хорошие шаблоны ... с учетом детерминированной функции, котораязапускать так часто, как лучше всего извлечь известные выходные данные из известных входных данных?