Это зависит от ваших потребностей и от вашей области.
При умножении вы должны выбрать генератор F x . Когда вы добавляете, вы должны использовать тот факт, что F является векторным пространством для некоторого меньшего F p m . На практике то, что вы делаете много времени, - это смешанный подход. Например. если вы работаете над F 256 , возьмите генератор X из F 256 x , и пусть G будет минимальным полиномом над F 16 . Теперь у вас есть
(сумма i меньше 16 a i X i ) (сумма j меньше 16 b j X j ) = sum_k sum i + j = k a i b j X i + j
Все, что вам нужно сделать, чтобы сделать умножение эффективным, это сохранить таблицу умножения F 16 и (используя G) построить X ^ m в терминах более низких степеней X и элементов в F 16
В итоге, в редком случае, когда p n = 2 2 n , вы получаете поле Конвеев Конвея (смотрите в "Конвейских путях", или в томе 4А Кнута, раздел 7.1.3), для которого существуют очень эффективные алгоритмы.