ゼミの話  適当な書き方だが2×2の正方行列[(a,-b),(c,d)]で成分a〜dを正値とし、(a〜dのうちの最大成分)×2×t < ad+bc(行列式) となるtで最大のものをとることを考える。例えば [(4,-4),(5,3)] とすると行列式は32で最大成分が5だからtとしては3が取れる・・・ということを行列式が4で表されるときに計算していった。行列式が64のとき [(6,-4),(7,6)] をとるとt=4、行列式256のとき [(12,-8),(14,12)] でt=9、と進めていき、行列式12=16777216のとき [(2918,-2880),(2875,2912)] でt=2874である(実際はもう少し細かい条件をつけて調べたのでこれが最大じゃあないかも)。というのをやっていた。MuPAD使うと

for a from 2828 to 2920 do
for i from 2828 to 2920 do
x:=16777216-a*i:
k:= 2828:
while k < 2921 do
y:=frac(x/k):
if (y=0 and 2827 < (x div k) and (x div k) < 2921)
then print(a,k,x div k,i):
end_if:
k:=k+1;
end:
end_for
end_for
2875, 2912, 2918, 2880
2875, 2918, 2912, 2880
2880, 2912, 2918, 2875
2880, 2918, 2912, 2875
2912, 2875, 2880, 2918
2912, 2880, 2875, 2918
2918, 2875, 2880, 2912
2918, 2880, 2875, 2912
2921
こんなかんじ。これで整数剰余環の平面(Z412)2上で、絶対値距離をとって2874コの誤りの訂正できる符号が作れることがわかった、みたいな。実用向きじゃあなさそうだけど。