おぼえがき
なんてカンジで設定が生きてないようだが、
PG:=Dom::Polynomial(Dom::GaloisField(2, 3, t^3+t+1)):
PG(t^3 + t + 1);3
t + t + 1
のようにドメインでは単なるGaloisFieldにして、処理したい式をpoly(〜、G)と置いたらスムーズにやってくれた。でもG(生成元の入った多項式)の形じゃないと次数下げは上手くいかない。
G:=Dom::GaloisField(2, 3, t^3+t+1):
g:=poly(X^2 + (1+t)*X + (1+t), [X], G):
factor(g);2
poly(X + (t + t ), [X], Dom::GaloisField(2, 3,3 2
poly(t + t + 1, [t], IntMod(2)))) poly(X + (t + 1), [X],3
Dom::GaloisField(2, 3, poly(t + t + 1, [t], IntMod(2))))
追記:その後(n, k, d)= (16, 8, 9)RS符号(自己相対)を作って、4誤り訂正に成功! いえーい訂正限界やnとの限界値比ならGolay符号(探査船ボイジャーに利用された(24, 12, 8)BCH符号で3誤り訂正。)に勝るぜ。まあ限界値比を高くしたいなら(16, 3, 14)とかやればいいと思うんだが、それだと情報送信効率が悪いということになる、筈。どの辺りが最適かとかはもっと専門書向けなんだろうな。Golay符号探してたら実演例が見つかりました。暗号・符号ってこういうプログラムも組めてひとまとまりなんだよなあ。Java使えるようになんないと…