生成方法
表 A.1 の多項式は次の方法で求めることが出来ます。
from functools import reduce
ELEMENT = tuple(reduce(
lambda x, _: x + [
(lambda y: (y >= 256) and (y ^ 285) or y)(x[-1] << 1)
], 'x'*254, [1]
))
EXPONENT = tuple([None] + [ELEMENT.index(n) for n in range(1, 256)])
POLYNOMIAL = tuple(reduce(
lambda g, m: g + [
(lambda x: tuple([
((x[0] + m) % 255),
*[
EXPONENT[ELEMENT[x[n]] ^ ELEMENT[(x[n + 1] + m) % 255]]
for n in range(m)
],
x[-1]
]))(g[-1])
],
range(1, 68),
[
(),
(0, 0),
]
))
# 以下、出力処理
for n in range(1, len(POLYNOMIAL)):
g = POLYNOMIAL[n]
m = 'x^%d' % n
e = n
for v in reversed(g[1:-1]):
e -= 1
if v != 0:
m += ' + a^%d x^%d' % (v, e)
else:
m += ' + x^%d' % e
if g[0] != 0:
m += ' + a^%d' % g[0]
else:
m += ' + 1'
print('%2d:' % n, m)
for n in range(1, len(POLYNOMIAL)):
print('%2d:' % n, ', '.join(['%3d' % v for v in reversed(POLYNOMIAL[n])]))
実行結果(前半:多項式)
1: x^1 + 1
2: x^2 + a^25 x^1 + a^1
3: x^3 + a^198 x^2 + a^199 x^1 + a^3
4: x^4 + a^75 x^3 + a^249 x^2 + a^78 x^1 + a^6
5: x^5 + a^113 x^4 + a^164 x^3 + a^166 x^2 + a^119 x^1 + a^10
6: x^6 + a^166 x^5 + a^0 x^4 + a^134 x^3 + a^5 x^2 + a^176 x^1 + a^15
7: x^7 + a^87 x^6 + a^229 x^5 + a^146 x^4 + a^149 x^3 + a^238 x^2 + a^102 x^1 + a^21
8: x^8 + a^175 x^7 + a^238 x^6 + a^208 x^5 + a^249 x^4 + a^215 x^3 + a^252 x^2 + a^196 x^1 + a^28
9: x^9 + a^95 x^8 + a^246 x^7 + a^137 x^6 + a^231 x^5 + a^235 x^4 + a^149 x^3 + a^11 x^2 + a^123 x^1 + a^36
10: x^10 + a^251 x^9 + a^67 x^8 + a^46 x^7 + a^61 x^6 + a^118 x^5 + a^70 x^4 + a^64 x^3 + a^94 x^2 + a^32 x^1 + a^45
11: x^11 + a^220 x^10 + a^192 x^9 + a^91 x^8 + a^194 x^7 + a^172 x^6 + a^177 x^5 + a^209 x^4 + a^116 x^3 + a^227 x^2 + a^10 x^1 + a^55
12: x^12 + a^102 x^11 + a^43 x^10 + a^98 x^9 + a^121 x^8 + a^187 x^7 + a^113 x^6 + a^198 x^5 + a^143 x^4 + a^131 x^3 + a^87 x^2 + a^157 x^1 + a^66
13: x^13 + a^74 x^12 + a^152 x^11 + a^176 x^10 + a^100 x^9 + a^86 x^8 + a^100 x^7 + a^106 x^6 + a^104 x^5 + a^130 x^4 + a^218 x^3 + a^206 x^2 + a^140 x^1 + a^78
14: x^14 + a^199 x^13 + a^249 x^12 + a^155 x^11 + a^48 x^10 + a^190 x^9 + a^124 x^8 + a^218 x^7 + a^137 x^6 + a^216 x^5 + a^87 x^4 + a^207 x^3 + a^59 x^2 + a^22 x^1 + a^91
15: x^15 + a^8 x^14 + a^183 x^13 + a^61 x^12 + a^91 x^11 + a^202 x^10 + a^37 x^9 + a^51 x^8 + a^58 x^7 + a^58 x^6 + a^237 x^5 + a^140 x^4 + a^124 x^3 + a^5 x^2 + a^99 x^1 + a^105
16: x^16 + a^120 x^15 + a^104 x^14 + a^107 x^13 + a^109 x^12 + a^102 x^11 + a^161 x^10 + a^76 x^9 + a^3 x^8 + a^91 x^7 + a^191 x^6 + a^147 x^5 + a^169 x^4 + a^182 x^3 + a^194 x^2 + a^225 x^1 + a^120
17: x^17 + a^43 x^16 + a^139 x^15 + a^206 x^14 + a^78 x^13 + a^43 x^12 + a^239 x^11 + a^123 x^10 + a^206 x^9 + a^214 x^8 + a^147 x^7 + a^24 x^6 + a^99 x^5 + a^150 x^4 + a^39 x^3 + a^243 x^2 + a^163 x^1 + a^136
18: x^18 + a^215 x^17 + a^234 x^16 + a^158 x^15 + a^94 x^14 + a^184 x^13 + a^97 x^12 + a^118 x^11 + a^170 x^10 + a^79 x^9 + a^187 x^8 + a^152 x^7 + a^148 x^6 + a^252 x^5 + a^179 x^4 + a^5 x^3 + a^98 x^2 + a^96 x^1 + a^153
19: x^19 + a^67 x^18 + a^3 x^17 + a^105 x^16 + a^153 x^15 + a^52 x^14 + a^90 x^13 + a^83 x^12 + a^17 x^11 + a^150 x^10 + a^159 x^9 + a^44 x^8 + a^128 x^7 + a^153 x^6 + a^133 x^5 + a^252 x^4 + a^222 x^3 + a^138 x^2 + a^220 x^1 + a^171
20: x^20 + a^17 x^19 + a^60 x^18 + a^79 x^17 + a^50 x^16 + a^61 x^15 + a^163 x^14 + a^26 x^13 + a^187 x^12 + a^202 x^11 + a^180 x^10 + a^221 x^9 + a^225 x^8 + a^83 x^7 + a^239 x^6 + a^156 x^5 + a^164 x^4 + a^212 x^3 + a^212 x^2 + a^188 x^1 + a^190
21: x^21 + a^240 x^20 + a^233 x^19 + a^104 x^18 + a^247 x^17 + a^181 x^16 + a^140 x^15 + a^67 x^14 + a^98 x^13 + a^85 x^12 + a^200 x^11 + a^210 x^10 + a^115 x^9 + a^148 x^8 + a^137 x^7 + a^230 x^6 + a^36 x^5 + a^122 x^4 + a^254 x^3 + a^148 x^2 + a^175 x^1 + a^210
22: x^22 + a^210 x^21 + a^171 x^20 + a^247 x^19 + a^242 x^18 + a^93 x^17 + a^230 x^16 + a^14 x^15 + a^109 x^14 + a^221 x^13 + a^53 x^12 + a^200 x^11 + a^74 x^10 + a^8 x^9 + a^172 x^8 + a^98 x^7 + a^80 x^6 + a^219 x^5 + a^134 x^4 + a^160 x^3 + a^105 x^2 + a^165 x^1 + a^231
23: x^23 + a^171 x^22 + a^102 x^21 + a^146 x^20 + a^91 x^19 + a^49 x^18 + a^103 x^17 + a^65 x^16 + a^17 x^15 + a^193 x^14 + a^150 x^13 + a^14 x^12 + a^25 x^11 + a^183 x^10 + a^248 x^9 + a^94 x^8 + a^164 x^7 + a^224 x^6 + a^192 x^5 + a^1 x^4 + a^78 x^3 + a^56 x^2 + a^147 x^1 + a^253
24: x^24 + a^229 x^23 + a^121 x^22 + a^135 x^21 + a^48 x^20 + a^211 x^19 + a^117 x^18 + a^251 x^17 + a^126 x^16 + a^159 x^15 + a^180 x^14 + a^169 x^13 + a^152 x^12 + a^192 x^11 + a^226 x^10 + a^228 x^9 + a^218 x^8 + a^111 x^7 + a^0 x^6 + a^117 x^5 + a^232 x^4 + a^87 x^3 + a^96 x^2 + a^227 x^1 + a^21
25: x^25 + a^231 x^24 + a^181 x^23 + a^156 x^22 + a^39 x^21 + a^170 x^20 + a^26 x^19 + a^12 x^18 + a^59 x^17 + a^15 x^16 + a^148 x^15 + a^201 x^14 + a^54 x^13 + a^66 x^12 + a^237 x^11 + a^208 x^10 + a^99 x^9 + a^167 x^8 + a^144 x^7 + a^182 x^6 + a^95 x^5 + a^243 x^4 + a^129 x^3 + a^178 x^2 + a^252 x^1 + a^45
26: x^26 + a^173 x^25 + a^125 x^24 + a^158 x^23 + a^2 x^22 + a^103 x^21 + a^182 x^20 + a^118 x^19 + a^17 x^18 + a^145 x^17 + a^201 x^16 + a^111 x^15 + a^28 x^14 + a^165 x^13 + a^53 x^12 + a^161 x^11 + a^21 x^10 + a^245 x^9 + a^142 x^8 + a^13 x^7 + a^102 x^6 + a^48 x^5 + a^227 x^4 + a^153 x^3 + a^145 x^2 + a^218 x^1 + a^70
27: x^27 + a^79 x^26 + a^228 x^25 + a^8 x^24 + a^165 x^23 + a^227 x^22 + a^21 x^21 + a^180 x^20 + a^29 x^19 + a^9 x^18 + a^237 x^17 + a^70 x^16 + a^99 x^15 + a^45 x^14 + a^58 x^13 + a^138 x^12 + a^135 x^11 + a^73 x^10 + a^126 x^9 + a^172 x^8 + a^94 x^7 + a^216 x^6 + a^193 x^5 + a^157 x^4 + a^26 x^3 + a^17 x^2 + a^149 x^1 + a^96
28: x^28 + a^168 x^27 + a^223 x^26 + a^200 x^25 + a^104 x^24 + a^224 x^23 + a^234 x^22 + a^108 x^21 + a^180 x^20 + a^110 x^19 + a^190 x^18 + a^195 x^17 + a^147 x^16 + a^205 x^15 + a^27 x^14 + a^232 x^13 + a^201 x^12 + a^21 x^11 + a^43 x^10 + a^245 x^9 + a^87 x^8 + a^42 x^7 + a^195 x^6 + a^212 x^5 + a^119 x^4 + a^242 x^3 + a^37 x^2 + a^9 x^1 + a^123
29: x^29 + a^156 x^28 + a^45 x^27 + a^183 x^26 + a^29 x^25 + a^151 x^24 + a^219 x^23 + a^54 x^22 + a^96 x^21 + a^249 x^20 + a^24 x^19 + a^136 x^18 + a^5 x^17 + a^241 x^16 + a^175 x^15 + a^189 x^14 + a^28 x^13 + a^75 x^12 + a^234 x^11 + a^150 x^10 + a^148 x^9 + a^23 x^8 + a^9 x^7 + a^202 x^6 + a^162 x^5 + a^68 x^4 + a^250 x^3 + a^140 x^2 + a^24 x^1 + a^151
30: x^30 + a^41 x^29 + a^173 x^28 + a^145 x^27 + a^152 x^26 + a^216 x^25 + a^31 x^24 + a^179 x^23 + a^182 x^22 + a^50 x^21 + a^48 x^20 + a^110 x^19 + a^86 x^18 + a^239 x^17 + a^96 x^16 + a^222 x^15 + a^125 x^14 + a^42 x^13 + a^173 x^12 + a^226 x^11 + a^193 x^10 + a^224 x^9 + a^130 x^8 + a^156 x^7 + a^37 x^6 + a^251 x^5 + a^216 x^4 + a^238 x^3 + a^40 x^2 + a^192 x^1 + a^180
31: x^31 + a^20 x^30 + a^37 x^29 + a^252 x^28 + a^93 x^27 + a^63 x^26 + a^75 x^25 + a^225 x^24 + a^31 x^23 + a^115 x^22 + a^83 x^21 + a^113 x^20 + a^39 x^19 + a^44 x^18 + a^73 x^17 + a^122 x^16 + a^137 x^15 + a^118 x^14 + a^119 x^13 + a^144 x^12 + a^248 x^11 + a^248 x^10 + a^55 x^9 + a^1 x^8 + a^225 x^7 + a^105 x^6 + a^123 x^5 + a^183 x^4 + a^117 x^3 + a^187 x^2 + a^200 x^1 + a^210
32: x^32 + a^10 x^31 + a^6 x^30 + a^106 x^29 + a^190 x^28 + a^249 x^27 + a^167 x^26 + a^4 x^25 + a^67 x^24 + a^209 x^23 + a^138 x^22 + a^138 x^21 + a^32 x^20 + a^242 x^19 + a^123 x^18 + a^89 x^17 + a^27 x^16 + a^120 x^15 + a^185 x^14 + a^80 x^13 + a^156 x^12 + a^38 x^11 + a^69 x^10 + a^171 x^9 + a^60 x^8 + a^28 x^7 + a^222 x^6 + a^80 x^5 + a^52 x^4 + a^254 x^3 + a^185 x^2 + a^220 x^1 + a^241
33: x^33 + a^245 x^32 + a^231 x^31 + a^55 x^30 + a^24 x^29 + a^71 x^28 + a^78 x^27 + a^76 x^26 + a^81 x^25 + a^225 x^24 + a^212 x^23 + a^173 x^22 + a^37 x^21 + a^215 x^20 + a^46 x^19 + a^119 x^18 + a^229 x^17 + a^245 x^16 + a^167 x^15 + a^126 x^14 + a^72 x^13 + a^181 x^12 + a^94 x^11 + a^165 x^10 + a^210 x^9 + a^98 x^8 + a^125 x^7 + a^159 x^6 + a^184 x^5 + a^169 x^4 + a^232 x^3 + a^185 x^2 + a^231 x^1 + a^18
34: x^34 + a^111 x^33 + a^77 x^32 + a^146 x^31 + a^94 x^30 + a^26 x^29 + a^21 x^28 + a^108 x^27 + a^19 x^26 + a^105 x^25 + a^94 x^24 + a^113 x^23 + a^193 x^22 + a^86 x^21 + a^140 x^20 + a^163 x^19 + a^125 x^18 + a^58 x^17 + a^158 x^16 + a^229 x^15 + a^239 x^14 + a^218 x^13 + a^103 x^12 + a^56 x^11 + a^70 x^10 + a^114 x^9 + a^61 x^8 + a^183 x^7 + a^129 x^6 + a^167 x^5 + a^13 x^4 + a^98 x^3 + a^62 x^2 + a^129 x^1 + a^51
35: x^35 + a^7 x^34 + a^94 x^33 + a^143 x^32 + a^81 x^31 + a^247 x^30 + a^127 x^29 + a^202 x^28 + a^202 x^27 + a^194 x^26 + a^125 x^25 + a^146 x^24 + a^29 x^23 + a^138 x^22 + a^162 x^21 + a^153 x^20 + a^65 x^19 + a^105 x^18 + a^122 x^17 + a^116 x^16 + a^238 x^15 + a^26 x^14 + a^36 x^13 + a^216 x^12 + a^112 x^11 + a^125 x^10 + a^228 x^9 + a^15 x^8 + a^49 x^7 + a^8 x^6 + a^162 x^5 + a^30 x^4 + a^126 x^3 + a^111 x^2 + a^58 x^1 + a^85
36: x^36 + a^200 x^35 + a^183 x^34 + a^98 x^33 + a^16 x^32 + a^172 x^31 + a^31 x^30 + a^246 x^29 + a^234 x^28 + a^60 x^27 + a^152 x^26 + a^115 x^25 + a^0 x^24 + a^167 x^23 + a^152 x^22 + a^113 x^21 + a^248 x^20 + a^238 x^19 + a^107 x^18 + a^18 x^17 + a^63 x^16 + a^218 x^15 + a^37 x^14 + a^87 x^13 + a^210 x^12 + a^105 x^11 + a^177 x^10 + a^120 x^9 + a^74 x^8 + a^121 x^7 + a^196 x^6 + a^117 x^5 + a^251 x^4 + a^113 x^3 + a^233 x^2 + a^30 x^1 + a^120
37: x^37 + a^154 x^36 + a^75 x^35 + a^141 x^34 + a^180 x^33 + a^61 x^32 + a^165 x^31 + a^104 x^30 + a^232 x^29 + a^46 x^28 + a^227 x^27 + a^96 x^26 + a^178 x^25 + a^92 x^24 + a^135 x^23 + a^57 x^22 + a^162 x^21 + a^120 x^20 + a^194 x^19 + a^212 x^18 + a^174 x^17 + a^252 x^16 + a^183 x^15 + a^42 x^14 + a^35 x^13 + a^157 x^12 + a^111 x^11 + a^23 x^10 + a^133 x^9 + a^100 x^8 + a^8 x^7 + a^105 x^6 + a^37 x^5 + a^192 x^4 + a^189 x^3 + a^159 x^2 + a^19 x^1 + a^156
38: x^38 + a^159 x^37 + a^34 x^36 + a^38 x^35 + a^228 x^34 + a^230 x^33 + a^59 x^32 + a^243 x^31 + a^95 x^30 + a^49 x^29 + a^218 x^28 + a^176 x^27 + a^164 x^26 + a^20 x^25 + a^65 x^24 + a^45 x^23 + a^111 x^22 + a^39 x^21 + a^81 x^20 + a^49 x^19 + a^118 x^18 + a^113 x^17 + a^222 x^16 + a^193 x^15 + a^250 x^14 + a^242 x^13 + a^168 x^12 + a^217 x^11 + a^41 x^10 + a^164 x^9 + a^247 x^8 + a^177 x^7 + a^30 x^6 + a^238 x^5 + a^18 x^4 + a^120 x^3 + a^153 x^2 + a^60 x^1 + a^193
39: x^39 + a^81 x^38 + a^216 x^37 + a^174 x^36 + a^47 x^35 + a^200 x^34 + a^150 x^33 + a^59 x^32 + a^156 x^31 + a^89 x^30 + a^143 x^29 + a^89 x^28 + a^166 x^27 + a^183 x^26 + a^170 x^25 + a^152 x^24 + a^21 x^23 + a^165 x^22 + a^177 x^21 + a^113 x^20 + a^132 x^19 + a^234 x^18 + a^5 x^17 + a^154 x^16 + a^68 x^15 + a^124 x^14 + a^175 x^13 + a^196 x^12 + a^157 x^11 + a^249 x^10 + a^233 x^9 + a^83 x^8 + a^24 x^7 + a^153 x^6 + a^241 x^5 + a^126 x^4 + a^36 x^3 + a^116 x^2 + a^19 x^1 + a^231
40: x^40 + a^59 x^39 + a^116 x^38 + a^79 x^37 + a^161 x^36 + a^252 x^35 + a^98 x^34 + a^128 x^33 + a^205 x^32 + a^128 x^31 + a^161 x^30 + a^247 x^29 + a^57 x^28 + a^163 x^27 + a^56 x^26 + a^235 x^25 + a^106 x^24 + a^53 x^23 + a^26 x^22 + a^187 x^21 + a^174 x^20 + a^226 x^19 + a^104 x^18 + a^170 x^17 + a^7 x^16 + a^175 x^15 + a^35 x^14 + a^181 x^13 + a^114 x^12 + a^88 x^11 + a^41 x^10 + a^47 x^9 + a^163 x^8 + a^125 x^7 + a^134 x^6 + a^72 x^5 + a^20 x^4 + a^232 x^3 + a^53 x^2 + a^35 x^1 + a^15
41: x^41 + a^132 x^40 + a^167 x^39 + a^52 x^38 + a^139 x^37 + a^184 x^36 + a^223 x^35 + a^149 x^34 + a^92 x^33 + a^250 x^32 + a^18 x^31 + a^83 x^30 + a^33 x^29 + a^127 x^28 + a^109 x^27 + a^194 x^26 + a^7 x^25 + a^211 x^24 + a^242 x^23 + a^109 x^22 + a^66 x^21 + a^86 x^20 + a^169 x^19 + a^87 x^18 + a^96 x^17 + a^187 x^16 + a^159 x^15 + a^114 x^14 + a^172 x^13 + a^118 x^12 + a^208 x^11 + a^183 x^10 + a^200 x^9 + a^82 x^8 + a^179 x^7 + a^38 x^6 + a^39 x^5 + a^34 x^4 + a^242 x^3 + a^142 x^2 + a^147 x^1 + a^55
42: x^42 + a^250 x^41 + a^103 x^40 + a^221 x^39 + a^230 x^38 + a^25 x^37 + a^18 x^36 + a^137 x^35 + a^231 x^34 + a^0 x^33 + a^3 x^32 + a^58 x^31 + a^242 x^30 + a^221 x^29 + a^191 x^28 + a^110 x^27 + a^84 x^26 + a^230 x^25 + a^8 x^24 + a^188 x^23 + a^106 x^22 + a^96 x^21 + a^147 x^20 + a^15 x^19 + a^131 x^18 + a^139 x^17 + a^34 x^16 + a^101 x^15 + a^223 x^14 + a^39 x^13 + a^101 x^12 + a^213 x^11 + a^199 x^10 + a^237 x^9 + a^254 x^8 + a^201 x^7 + a^123 x^6 + a^171 x^5 + a^162 x^4 + a^194 x^3 + a^117 x^2 + a^50 x^1 + a^96
43: x^43 + a^96 x^42 + a^67 x^41 + a^3 x^40 + a^245 x^39 + a^217 x^38 + a^215 x^37 + a^33 x^36 + a^65 x^35 + a^240 x^34 + a^109 x^33 + a^144 x^32 + a^63 x^31 + a^21 x^30 + a^131 x^29 + a^38 x^28 + a^101 x^27 + a^153 x^26 + a^128 x^25 + a^55 x^24 + a^31 x^23 + a^237 x^22 + a^3 x^21 + a^94 x^20 + a^160 x^19 + a^20 x^18 + a^87 x^17 + a^77 x^16 + a^56 x^15 + a^191 x^14 + a^123 x^13 + a^207 x^12 + a^75 x^11 + a^82 x^10 + a^0 x^9 + a^122 x^8 + a^132 x^7 + a^101 x^6 + a^145 x^5 + a^215 x^4 + a^15 x^3 + a^121 x^2 + a^192 x^1 + a^138
44: x^44 + a^190 x^43 + a^7 x^42 + a^61 x^41 + a^121 x^40 + a^71 x^39 + a^246 x^38 + a^69 x^37 + a^55 x^36 + a^168 x^35 + a^188 x^34 + a^89 x^33 + a^243 x^32 + a^191 x^31 + a^25 x^30 + a^72 x^29 + a^123 x^28 + a^9 x^27 + a^145 x^26 + a^14 x^25 + a^247 x^24 + a^1 x^23 + a^238 x^22 + a^44 x^21 + a^78 x^20 + a^143 x^19 + a^62 x^18 + a^224 x^17 + a^126 x^16 + a^118 x^15 + a^114 x^14 + a^68 x^13 + a^163 x^12 + a^52 x^11 + a^194 x^10 + a^217 x^9 + a^147 x^8 + a^204 x^7 + a^169 x^6 + a^37 x^5 + a^130 x^4 + a^113 x^3 + a^102 x^2 + a^73 x^1 + a^181
45: x^45 + a^6 x^44 + a^172 x^43 + a^72 x^42 + a^250 x^41 + a^18 x^40 + a^171 x^39 + a^171 x^38 + a^162 x^37 + a^229 x^36 + a^187 x^35 + a^239 x^34 + a^4 x^33 + a^187 x^32 + a^11 x^31 + a^37 x^30 + a^228 x^29 + a^102 x^28 + a^72 x^27 + a^102 x^26 + a^22 x^25 + a^33 x^24 + a^73 x^23 + a^95 x^22 + a^99 x^21 + a^132 x^20 + a^1 x^19 + a^15 x^18 + a^89 x^17 + a^4 x^16 + a^112 x^15 + a^130 x^14 + a^95 x^13 + a^211 x^12 + a^235 x^11 + a^227 x^10 + a^58 x^9 + a^35 x^8 + a^88 x^7 + a^132 x^6 + a^23 x^5 + a^44 x^4 + a^165 x^3 + a^54 x^2 + a^187 x^1 + a^225
46: x^46 + a^112 x^45 + a^94 x^44 + a^88 x^43 + a^112 x^42 + a^253 x^41 + a^224 x^40 + a^202 x^39 + a^115 x^38 + a^187 x^37 + a^99 x^36 + a^89 x^35 + a^5 x^34 + a^54 x^33 + a^113 x^32 + a^129 x^31 + a^44 x^30 + a^58 x^29 + a^16 x^28 + a^135 x^27 + a^216 x^26 + a^169 x^25 + a^211 x^24 + a^36 x^23 + a^1 x^22 + a^4 x^21 + a^96 x^20 + a^60 x^19 + a^241 x^18 + a^73 x^17 + a^104 x^16 + a^234 x^15 + a^8 x^14 + a^249 x^13 + a^245 x^12 + a^119 x^11 + a^174 x^10 + a^52 x^9 + a^25 x^8 + a^157 x^7 + a^224 x^6 + a^43 x^5 + a^202 x^4 + a^223 x^3 + a^19 x^2 + a^82 x^1 + a^15
47: x^47 + a^76 x^46 + a^164 x^45 + a^229 x^44 + a^92 x^43 + a^79 x^42 + a^168 x^41 + a^219 x^40 + a^110 x^39 + a^104 x^38 + a^21 x^37 + a^220 x^36 + a^74 x^35 + a^19 x^34 + a^199 x^33 + a^195 x^32 + a^100 x^31 + a^93 x^30 + a^191 x^29 + a^43 x^28 + a^213 x^27 + a^72 x^26 + a^56 x^25 + a^138 x^24 + a^161 x^23 + a^125 x^22 + a^187 x^21 + a^119 x^20 + a^250 x^19 + a^189 x^18 + a^137 x^17 + a^190 x^16 + a^76 x^15 + a^126 x^14 + a^247 x^13 + a^93 x^12 + a^30 x^11 + a^132 x^10 + a^6 x^9 + a^58 x^8 + a^213 x^7 + a^208 x^6 + a^165 x^5 + a^224 x^4 + a^152 x^3 + a^133 x^2 + a^91 x^1 + a^61
48: x^48 + a^228 x^47 + a^25 x^46 + a^196 x^45 + a^130 x^44 + a^211 x^43 + a^146 x^42 + a^60 x^41 + a^24 x^40 + a^251 x^39 + a^90 x^38 + a^39 x^37 + a^102 x^36 + a^240 x^35 + a^61 x^34 + a^178 x^33 + a^63 x^32 + a^46 x^31 + a^123 x^30 + a^115 x^29 + a^18 x^28 + a^221 x^27 + a^111 x^26 + a^135 x^25 + a^160 x^24 + a^182 x^23 + a^205 x^22 + a^107 x^21 + a^206 x^20 + a^95 x^19 + a^150 x^18 + a^120 x^17 + a^184 x^16 + a^91 x^15 + a^21 x^14 + a^247 x^13 + a^156 x^12 + a^140 x^11 + a^238 x^10 + a^191 x^9 + a^11 x^8 + a^94 x^7 + a^227 x^6 + a^84 x^5 + a^50 x^4 + a^163 x^3 + a^39 x^2 + a^34 x^1 + a^108
49: x^49 + a^172 x^48 + a^121 x^47 + a^1 x^46 + a^41 x^45 + a^193 x^44 + a^222 x^43 + a^237 x^42 + a^64 x^41 + a^109 x^40 + a^181 x^39 + a^52 x^38 + a^120 x^37 + a^212 x^36 + a^226 x^35 + a^239 x^34 + a^245 x^33 + a^208 x^32 + a^20 x^31 + a^246 x^30 + a^34 x^29 + a^225 x^28 + a^204 x^27 + a^134 x^26 + a^101 x^25 + a^125 x^24 + a^206 x^23 + a^69 x^22 + a^138 x^21 + a^250 x^20 + a^0 x^19 + a^77 x^18 + a^58 x^17 + a^143 x^16 + a^185 x^15 + a^220 x^14 + a^254 x^13 + a^210 x^12 + a^190 x^11 + a^112 x^10 + a^88 x^9 + a^91 x^8 + a^57 x^7 + a^90 x^6 + a^109 x^5 + a^5 x^4 + a^13 x^3 + a^181 x^2 + a^25 x^1 + a^156
50: x^50 + a^232 x^49 + a^125 x^48 + a^157 x^47 + a^161 x^46 + a^164 x^45 + a^9 x^44 + a^118 x^43 + a^46 x^42 + a^209 x^41 + a^99 x^40 + a^203 x^39 + a^193 x^38 + a^35 x^37 + a^3 x^36 + a^209 x^35 + a^111 x^34 + a^195 x^33 + a^242 x^32 + a^203 x^31 + a^225 x^30 + a^46 x^29 + a^13 x^28 + a^32 x^27 + a^160 x^26 + a^126 x^25 + a^209 x^24 + a^130 x^23 + a^160 x^22 + a^242 x^21 + a^215 x^20 + a^242 x^19 + a^75 x^18 + a^77 x^17 + a^42 x^16 + a^189 x^15 + a^32 x^14 + a^113 x^13 + a^65 x^12 + a^124 x^11 + a^69 x^10 + a^228 x^9 + a^114 x^8 + a^235 x^7 + a^175 x^6 + a^124 x^5 + a^170 x^4 + a^215 x^3 + a^232 x^2 + a^133 x^1 + a^205
51: x^51 + a^213 x^50 + a^166 x^49 + a^142 x^48 + a^43 x^47 + a^10 x^46 + a^216 x^45 + a^141 x^44 + a^163 x^43 + a^172 x^42 + a^180 x^41 + a^102 x^40 + a^70 x^39 + a^89 x^38 + a^62 x^37 + a^222 x^36 + a^62 x^35 + a^42 x^34 + a^210 x^33 + a^151 x^32 + a^163 x^31 + a^218 x^30 + a^70 x^29 + a^77 x^28 + a^39 x^27 + a^166 x^26 + a^191 x^25 + a^114 x^24 + a^202 x^23 + a^245 x^22 + a^188 x^21 + a^183 x^20 + a^221 x^19 + a^75 x^18 + a^212 x^17 + a^27 x^16 + a^237 x^15 + a^127 x^14 + a^204 x^13 + a^235 x^12 + a^62 x^11 + a^190 x^10 + a^232 x^9 + a^18 x^8 + a^46 x^7 + a^171 x^6 + a^15 x^5 + a^98 x^4 + a^247 x^3 + a^66 x^2 + a^163 x^1 + 1
52: x^52 + a^116 x^51 + a^50 x^50 + a^86 x^49 + a^186 x^48 + a^50 x^47 + a^220 x^46 + a^251 x^45 + a^89 x^44 + a^192 x^43 + a^46 x^42 + a^86 x^41 + a^127 x^40 + a^124 x^39 + a^19 x^38 + a^184 x^37 + a^233 x^36 + a^151 x^35 + a^215 x^34 + a^22 x^33 + a^14 x^32 + a^59 x^31 + a^145 x^30 + a^37 x^29 + a^242 x^28 + a^203 x^27 + a^134 x^26 + a^254 x^25 + a^89 x^24 + a^190 x^23 + a^94 x^22 + a^59 x^21 + a^65 x^20 + a^124 x^19 + a^113 x^18 + a^100 x^17 + a^233 x^16 + a^235 x^15 + a^121 x^14 + a^22 x^13 + a^76 x^12 + a^86 x^11 + a^97 x^10 + a^39 x^9 + a^242 x^8 + a^200 x^7 + a^220 x^6 + a^101 x^5 + a^33 x^4 + a^239 x^3 + a^254 x^2 + a^116 x^1 + a^51
53: x^53 + a^122 x^52 + a^214 x^51 + a^231 x^50 + a^136 x^49 + a^199 x^48 + a^11 x^47 + a^6 x^46 + a^205 x^45 + a^124 x^44 + a^72 x^43 + a^213 x^42 + a^117 x^41 + a^187 x^40 + a^60 x^39 + a^147 x^38 + a^201 x^37 + a^73 x^36 + a^75 x^35 + a^33 x^34 + a^146 x^33 + a^171 x^32 + a^247 x^31 + a^118 x^30 + a^208 x^29 + a^157 x^28 + a^177 x^27 + a^203 x^26 + a^235 x^25 + a^83 x^24 + a^45 x^23 + a^226 x^22 + a^202 x^21 + a^229 x^20 + a^168 x^19 + a^7 x^18 + a^57 x^17 + a^237 x^16 + a^235 x^15 + a^200 x^14 + a^124 x^13 + a^106 x^12 + a^254 x^11 + a^165 x^10 + a^14 x^9 + a^147 x^8 + a^0 x^7 + a^57 x^6 + a^42 x^5 + a^31 x^4 + a^178 x^3 + a^213 x^2 + a^173 x^1 + a^103
54: x^54 + a^183 x^53 + a^26 x^52 + a^201 x^51 + a^87 x^50 + a^210 x^49 + a^221 x^48 + a^113 x^47 + a^21 x^46 + a^46 x^45 + a^65 x^44 + a^45 x^43 + a^50 x^42 + a^238 x^41 + a^184 x^40 + a^249 x^39 + a^225 x^38 + a^102 x^37 + a^58 x^36 + a^209 x^35 + a^218 x^34 + a^109 x^33 + a^165 x^32 + a^26 x^31 + a^95 x^30 + a^184 x^29 + a^192 x^28 + a^52 x^27 + a^245 x^26 + a^35 x^25 + a^254 x^24 + a^238 x^23 + a^175 x^22 + a^172 x^21 + a^79 x^20 + a^123 x^19 + a^25 x^18 + a^122 x^17 + a^43 x^16 + a^120 x^15 + a^108 x^14 + a^215 x^13 + a^80 x^12 + a^128 x^11 + a^201 x^10 + a^235 x^9 + a^8 x^8 + a^153 x^7 + a^59 x^6 + a^101 x^5 + a^31 x^4 + a^198 x^3 + a^76 x^2 + a^31 x^1 + a^156
55: x^55 + a^38 x^54 + a^197 x^53 + a^123 x^52 + a^167 x^51 + a^16 x^50 + a^87 x^49 + a^178 x^48 + a^238 x^47 + a^227 x^46 + a^97 x^45 + a^148 x^44 + a^247 x^43 + a^26 x^42 + a^90 x^41 + a^228 x^40 + a^182 x^39 + a^236 x^38 + a^197 x^37 + a^47 x^36 + a^249 x^35 + a^36 x^34 + a^213 x^33 + a^54 x^32 + a^113 x^31 + a^181 x^30 + a^74 x^29 + a^177 x^28 + a^204 x^27 + a^155 x^26 + a^61 x^25 + a^47 x^24 + a^42 x^23 + a^0 x^22 + a^132 x^21 + a^144 x^20 + a^251 x^19 + a^200 x^18 + a^38 x^17 + a^38 x^16 + a^138 x^15 + a^54 x^14 + a^44 x^13 + a^64 x^12 + a^19 x^11 + a^22 x^10 + a^206 x^9 + a^16 x^8 + a^10 x^7 + a^228 x^6 + a^211 x^5 + a^161 x^4 + a^171 x^3 + a^44 x^2 + a^194 x^1 + a^210
56: x^56 + a^106 x^55 + a^120 x^54 + a^107 x^53 + a^157 x^52 + a^164 x^51 + a^216 x^50 + a^112 x^49 + a^116 x^48 + a^2 x^47 + a^91 x^46 + a^248 x^45 + a^163 x^44 + a^36 x^43 + a^201 x^42 + a^202 x^41 + a^229 x^40 + a^6 x^39 + a^144 x^38 + a^254 x^37 + a^155 x^36 + a^135 x^35 + a^208 x^34 + a^170 x^33 + a^209 x^32 + a^12 x^31 + a^139 x^30 + a^127 x^29 + a^142 x^28 + a^182 x^27 + a^249 x^26 + a^177 x^25 + a^174 x^24 + a^190 x^23 + a^28 x^22 + a^10 x^21 + a^85 x^20 + a^239 x^19 + a^184 x^18 + a^101 x^17 + a^124 x^16 + a^152 x^15 + a^206 x^14 + a^96 x^13 + a^23 x^12 + a^163 x^11 + a^61 x^10 + a^27 x^9 + a^196 x^8 + a^247 x^7 + a^151 x^6 + a^154 x^5 + a^202 x^4 + a^207 x^3 + a^20 x^2 + a^61 x^1 + a^10
57: x^57 + a^58 x^56 + a^140 x^55 + a^237 x^54 + a^93 x^53 + a^106 x^52 + a^61 x^51 + a^193 x^50 + a^2 x^49 + a^87 x^48 + a^73 x^47 + a^194 x^46 + a^215 x^45 + a^159 x^44 + a^163 x^43 + a^10 x^42 + a^155 x^41 + a^5 x^40 + a^121 x^39 + a^153 x^38 + a^59 x^37 + a^248 x^36 + a^4 x^35 + a^117 x^34 + a^22 x^33 + a^60 x^32 + a^177 x^31 + a^144 x^30 + a^44 x^29 + a^72 x^28 + a^228 x^27 + a^62 x^26 + a^1 x^25 + a^19 x^24 + a^170 x^23 + a^113 x^22 + a^158 x^21 + a^25 x^20 + a^175 x^19 + a^199 x^18 + a^139 x^17 + a^90 x^16 + a^1 x^15 + a^210 x^14 + a^7 x^13 + a^119 x^12 + a^154 x^11 + a^89 x^10 + a^159 x^9 + a^130 x^8 + a^122 x^7 + a^46 x^6 + a^147 x^5 + a^190 x^4 + a^135 x^3 + a^94 x^2 + a^68 x^1 + a^66
58: x^58 + a^82 x^57 + a^116 x^56 + a^26 x^55 + a^247 x^54 + a^66 x^53 + a^27 x^52 + a^62 x^51 + a^107 x^50 + a^252 x^49 + a^182 x^48 + a^200 x^47 + a^185 x^46 + a^235 x^45 + a^55 x^44 + a^251 x^43 + a^242 x^42 + a^210 x^41 + a^144 x^40 + a^154 x^39 + a^237 x^38 + a^176 x^37 + a^141 x^36 + a^192 x^35 + a^248 x^34 + a^152 x^33 + a^249 x^32 + a^206 x^31 + a^85 x^30 + a^253 x^29 + a^142 x^28 + a^65 x^27 + a^165 x^26 + a^125 x^25 + a^23 x^24 + a^24 x^23 + a^30 x^22 + a^122 x^21 + a^240 x^20 + a^214 x^19 + a^6 x^18 + a^129 x^17 + a^218 x^16 + a^29 x^15 + a^145 x^14 + a^127 x^13 + a^134 x^12 + a^206 x^11 + a^245 x^10 + a^117 x^9 + a^29 x^8 + a^41 x^7 + a^63 x^6 + a^159 x^5 + a^142 x^4 + a^233 x^3 + a^125 x^2 + a^148 x^1 + a^123
59: x^59 + a^57 x^58 + a^115 x^57 + a^232 x^56 + a^11 x^55 + a^195 x^54 + a^217 x^53 + a^3 x^52 + a^206 x^51 + a^77 x^50 + a^67 x^49 + a^29 x^48 + a^166 x^47 + a^180 x^46 + a^106 x^45 + a^118 x^44 + a^203 x^43 + a^17 x^42 + a^69 x^41 + a^152 x^40 + a^213 x^39 + a^74 x^38 + a^44 x^37 + a^49 x^36 + a^43 x^35 + a^98 x^34 + a^61 x^33 + a^253 x^32 + a^122 x^31 + a^14 x^30 + a^43 x^29 + a^209 x^28 + a^143 x^27 + a^9 x^26 + a^104 x^25 + a^107 x^24 + a^171 x^23 + a^224 x^22 + a^57 x^21 + a^254 x^20 + a^251 x^19 + a^226 x^18 + a^232 x^17 + a^221 x^16 + a^194 x^15 + a^240 x^14 + a^117 x^13 + a^161 x^12 + a^82 x^11 + a^178 x^10 + a^246 x^9 + a^178 x^8 + a^33 x^7 + a^50 x^6 + a^86 x^5 + a^215 x^4 + a^239 x^3 + a^180 x^2 + a^180 x^1 + a^181
60: x^60 + a^107 x^59 + a^140 x^58 + a^26 x^57 + a^12 x^56 + a^9 x^55 + a^141 x^54 + a^243 x^53 + a^197 x^52 + a^226 x^51 + a^197 x^50 + a^219 x^49 + a^45 x^48 + a^211 x^47 + a^101 x^46 + a^219 x^45 + a^120 x^44 + a^28 x^43 + a^181 x^42 + a^127 x^41 + a^6 x^40 + a^100 x^39 + a^247 x^38 + a^2 x^37 + a^205 x^36 + a^198 x^35 + a^57 x^34 + a^115 x^33 + a^219 x^32 + a^101 x^31 + a^109 x^30 + a^160 x^29 + a^82 x^28 + a^37 x^27 + a^38 x^26 + a^238 x^25 + a^49 x^24 + a^160 x^23 + a^209 x^22 + a^121 x^21 + a^86 x^20 + a^11 x^19 + a^124 x^18 + a^30 x^17 + a^181 x^16 + a^84 x^15 + a^25 x^14 + a^194 x^13 + a^87 x^12 + a^65 x^11 + a^102 x^10 + a^190 x^9 + a^220 x^8 + a^70 x^7 + a^27 x^6 + a^209 x^5 + a^16 x^4 + a^89 x^3 + a^7 x^2 + a^33 x^1 + a^240
61: x^61 + a^161 x^60 + a^244 x^59 + a^105 x^58 + a^115 x^57 + a^64 x^56 + a^9 x^55 + a^221 x^54 + a^236 x^53 + a^16 x^52 + a^145 x^51 + a^148 x^50 + a^34 x^49 + a^144 x^48 + a^186 x^47 + a^13 x^46 + a^20 x^45 + a^254 x^44 + a^246 x^43 + a^38 x^42 + a^35 x^41 + a^202 x^40 + a^72 x^39 + a^4 x^38 + a^212 x^37 + a^159 x^36 + a^211 x^35 + a^165 x^34 + a^135 x^33 + a^252 x^32 + a^250 x^31 + a^25 x^30 + a^87 x^29 + a^30 x^28 + a^120 x^27 + a^226 x^26 + a^234 x^25 + a^92 x^24 + a^199 x^23 + a^72 x^22 + a^7 x^21 + a^155 x^20 + a^218 x^19 + a^231 x^18 + a^44 x^17 + a^125 x^16 + a^178 x^15 + a^156 x^14 + a^174 x^13 + a^124 x^12 + a^43 x^11 + a^100 x^10 + a^31 x^9 + a^56 x^8 + a^101 x^7 + a^204 x^6 + a^64 x^5 + a^175 x^4 + a^225 x^3 + a^169 x^2 + a^146 x^1 + a^45
62: x^62 + a^65 x^61 + a^202 x^60 + a^113 x^59 + a^98 x^58 + a^71 x^57 + a^223 x^56 + a^248 x^55 + a^118 x^54 + a^214 x^53 + a^94 x^52 + a^0 x^51 + a^122 x^50 + a^37 x^49 + a^23 x^48 + a^2 x^47 + a^228 x^46 + a^58 x^45 + a^121 x^44 + a^7 x^43 + a^105 x^42 + a^135 x^41 + a^78 x^40 + a^243 x^39 + a^118 x^38 + a^70 x^37 + a^76 x^36 + a^223 x^35 + a^89 x^34 + a^72 x^33 + a^50 x^32 + a^70 x^31 + a^111 x^30 + a^194 x^29 + a^17 x^28 + a^212 x^27 + a^126 x^26 + a^181 x^25 + a^35 x^24 + a^221 x^23 + a^117 x^22 + a^235 x^21 + a^11 x^20 + a^229 x^19 + a^149 x^18 + a^147 x^17 + a^123 x^16 + a^213 x^15 + a^40 x^14 + a^115 x^13 + a^6 x^12 + a^200 x^11 + a^100 x^10 + a^26 x^9 + a^246 x^8 + a^182 x^7 + a^218 x^6 + a^127 x^5 + a^215 x^4 + a^36 x^3 + a^186 x^2 + a^110 x^1 + a^106
63: x^63 + a^30 x^62 + a^71 x^61 + a^36 x^60 + a^71 x^59 + a^19 x^58 + a^195 x^57 + a^172 x^56 + a^110 x^55 + a^61 x^54 + a^2 x^53 + a^169 x^52 + a^194 x^51 + a^90 x^50 + a^136 x^49 + a^59 x^48 + a^182 x^47 + a^231 x^46 + a^145 x^45 + a^102 x^44 + a^39 x^43 + a^170 x^42 + a^231 x^41 + a^214 x^40 + a^67 x^39 + a^196 x^38 + a^207 x^37 + a^53 x^36 + a^112 x^35 + a^246 x^34 + a^90 x^33 + a^90 x^32 + a^121 x^31 + a^183 x^30 + a^146 x^29 + a^74 x^28 + a^77 x^27 + a^38 x^26 + a^89 x^25 + a^22 x^24 + a^231 x^23 + a^55 x^22 + a^56 x^21 + a^242 x^20 + a^112 x^19 + a^217 x^18 + a^110 x^17 + a^123 x^16 + a^62 x^15 + a^201 x^14 + a^217 x^13 + a^128 x^12 + a^165 x^11 + a^60 x^10 + a^181 x^9 + a^37 x^8 + a^161 x^7 + a^246 x^6 + a^132 x^5 + a^246 x^4 + a^18 x^3 + a^115 x^2 + a^136 x^1 + a^168
64: x^64 + a^45 x^63 + a^51 x^62 + a^175 x^61 + a^9 x^60 + a^7 x^59 + a^158 x^58 + a^159 x^57 + a^49 x^56 + a^68 x^55 + a^119 x^54 + a^92 x^53 + a^123 x^52 + a^177 x^51 + a^204 x^50 + a^187 x^49 + a^254 x^48 + a^200 x^47 + a^78 x^46 + a^141 x^45 + a^149 x^44 + a^119 x^43 + a^26 x^42 + a^127 x^41 + a^53 x^40 + a^160 x^39 + a^93 x^38 + a^199 x^37 + a^212 x^36 + a^29 x^35 + a^24 x^34 + a^145 x^33 + a^156 x^32 + a^208 x^31 + a^150 x^30 + a^218 x^29 + a^209 x^28 + a^4 x^27 + a^216 x^26 + a^91 x^25 + a^47 x^24 + a^184 x^23 + a^146 x^22 + a^47 x^21 + a^140 x^20 + a^195 x^19 + a^195 x^18 + a^125 x^17 + a^242 x^16 + a^238 x^15 + a^63 x^14 + a^99 x^13 + a^108 x^12 + a^140 x^11 + a^230 x^10 + a^242 x^9 + a^31 x^8 + a^204 x^7 + a^11 x^6 + a^178 x^5 + a^243 x^4 + a^217 x^3 + a^156 x^2 + a^213 x^1 + a^231
65: x^65 + a^137 x^64 + a^158 x^63 + a^247 x^62 + a^240 x^61 + a^37 x^60 + a^238 x^59 + a^214 x^58 + a^128 x^57 + a^99 x^56 + a^218 x^55 + a^46 x^54 + a^138 x^53 + a^198 x^52 + a^128 x^51 + a^92 x^50 + a^219 x^49 + a^109 x^48 + a^139 x^47 + a^166 x^46 + a^25 x^45 + a^66 x^44 + a^67 x^43 + a^14 x^42 + a^58 x^41 + a^238 x^40 + a^149 x^39 + a^177 x^38 + a^195 x^37 + a^221 x^36 + a^154 x^35 + a^171 x^34 + a^48 x^33 + a^80 x^32 + a^12 x^31 + a^59 x^30 + a^190 x^29 + a^228 x^28 + a^19 x^27 + a^55 x^26 + a^208 x^25 + a^92 x^24 + a^112 x^23 + a^229 x^22 + a^37 x^21 + a^60 x^20 + a^10 x^19 + a^47 x^18 + a^81 x^17 + a^0 x^16 + a^192 x^15 + a^37 x^14 + a^171 x^13 + a^175 x^12 + a^147 x^11 + a^128 x^10 + a^73 x^9 + a^166 x^8 + a^61 x^7 + a^149 x^6 + a^12 x^5 + a^24 x^4 + a^95 x^3 + a^70 x^2 + a^113 x^1 + a^40
66: x^66 + a^5 x^65 + a^118 x^64 + a^222 x^63 + a^180 x^62 + a^136 x^61 + a^136 x^60 + a^162 x^59 + a^51 x^58 + a^46 x^57 + a^117 x^56 + a^13 x^55 + a^215 x^54 + a^81 x^53 + a^17 x^52 + a^139 x^51 + a^247 x^50 + a^197 x^49 + a^171 x^48 + a^95 x^47 + a^173 x^46 + a^65 x^45 + a^137 x^44 + a^178 x^43 + a^68 x^42 + a^111 x^41 + a^95 x^40 + a^101 x^39 + a^41 x^38 + a^72 x^37 + a^214 x^36 + a^169 x^35 + a^197 x^34 + a^95 x^33 + a^7 x^32 + a^44 x^31 + a^154 x^30 + a^77 x^29 + a^111 x^28 + a^236 x^27 + a^40 x^26 + a^121 x^25 + a^143 x^24 + a^63 x^23 + a^87 x^22 + a^80 x^21 + a^253 x^20 + a^240 x^19 + a^126 x^18 + a^217 x^17 + a^77 x^16 + a^34 x^15 + a^232 x^14 + a^106 x^13 + a^50 x^12 + a^168 x^11 + a^82 x^10 + a^76 x^9 + a^146 x^8 + a^67 x^7 + a^106 x^6 + a^171 x^5 + a^25 x^4 + a^132 x^3 + a^93 x^2 + a^45 x^1 + a^105
67: x^67 + a^191 x^66 + a^172 x^65 + a^113 x^64 + a^86 x^63 + a^7 x^62 + a^166 x^61 + a^246 x^60 + a^185 x^59 + a^155 x^58 + a^250 x^57 + a^98 x^56 + a^113 x^55 + a^89 x^54 + a^86 x^53 + a^214 x^52 + a^225 x^51 + a^156 x^50 + a^190 x^49 + a^58 x^48 + a^33 x^47 + a^144 x^46 + a^67 x^45 + a^179 x^44 + a^163 x^43 + a^52 x^42 + a^154 x^41 + a^233 x^40 + a^151 x^39 + a^104 x^38 + a^251 x^37 + a^160 x^36 + a^126 x^35 + a^175 x^34 + a^208 x^33 + a^225 x^32 + a^70 x^31 + a^227 x^30 + a^146 x^29 + a^4 x^28 + a^152 x^27 + a^139 x^26 + a^103 x^25 + a^25 x^24 + a^107 x^23 + a^61 x^22 + a^204 x^21 + a^159 x^20 + a^250 x^19 + a^193 x^18 + a^225 x^17 + a^105 x^16 + a^160 x^15 + a^98 x^14 + a^167 x^13 + a^2 x^12 + a^53 x^11 + a^16 x^10 + a^242 x^9 + a^83 x^8 + a^210 x^7 + a^196 x^6 + a^103 x^5 + a^248 x^4 + a^86 x^3 + a^211 x^2 + a^41 x^1 + a^171
68: x^68 + a^247 x^67 + a^159 x^66 + a^223 x^65 + a^33 x^64 + a^224 x^63 + a^93 x^62 + a^77 x^61 + a^70 x^60 + a^90 x^59 + a^160 x^58 + a^32 x^57 + a^254 x^56 + a^43 x^55 + a^150 x^54 + a^84 x^53 + a^101 x^52 + a^190 x^51 + a^205 x^50 + a^133 x^49 + a^52 x^48 + a^60 x^47 + a^202 x^46 + a^165 x^45 + a^220 x^44 + a^203 x^43 + a^151 x^42 + a^93 x^41 + a^84 x^40 + a^15 x^39 + a^84 x^38 + a^253 x^37 + a^173 x^36 + a^160 x^35 + a^89 x^34 + a^227 x^33 + a^52 x^32 + a^199 x^31 + a^97 x^30 + a^95 x^29 + a^231 x^28 + a^52 x^27 + a^177 x^26 + a^41 x^25 + a^125 x^24 + a^137 x^23 + a^241 x^22 + a^166 x^21 + a^225 x^20 + a^118 x^19 + a^2 x^18 + a^54 x^17 + a^32 x^16 + a^82 x^15 + a^215 x^14 + a^175 x^13 + a^198 x^12 + a^43 x^11 + a^238 x^10 + a^235 x^9 + a^27 x^8 + a^101 x^7 + a^184 x^6 + a^127 x^5 + a^3 x^4 + a^5 x^3 + a^8 x^2 + a^163 x^1 + a^238
実行結果(後半:係数の指数)
1: 0, 0
2: 0, 25, 1
3: 0, 198, 199, 3
4: 0, 75, 249, 78, 6
5: 0, 113, 164, 166, 119, 10
6: 0, 166, 0, 134, 5, 176, 15
7: 0, 87, 229, 146, 149, 238, 102, 21
8: 0, 175, 238, 208, 249, 215, 252, 196, 28
9: 0, 95, 246, 137, 231, 235, 149, 11, 123, 36
10: 0, 251, 67, 46, 61, 118, 70, 64, 94, 32, 45
11: 0, 220, 192, 91, 194, 172, 177, 209, 116, 227, 10, 55
12: 0, 102, 43, 98, 121, 187, 113, 198, 143, 131, 87, 157, 66
13: 0, 74, 152, 176, 100, 86, 100, 106, 104, 130, 218, 206, 140, 78
14: 0, 199, 249, 155, 48, 190, 124, 218, 137, 216, 87, 207, 59, 22, 91
15: 0, 8, 183, 61, 91, 202, 37, 51, 58, 58, 237, 140, 124, 5, 99, 105
16: 0, 120, 104, 107, 109, 102, 161, 76, 3, 91, 191, 147, 169, 182, 194, 225, 120
17: 0, 43, 139, 206, 78, 43, 239, 123, 206, 214, 147, 24, 99, 150, 39, 243, 163, 136
18: 0, 215, 234, 158, 94, 184, 97, 118, 170, 79, 187, 152, 148, 252, 179, 5, 98, 96, 153
19: 0, 67, 3, 105, 153, 52, 90, 83, 17, 150, 159, 44, 128, 153, 133, 252, 222, 138, 220, 171
20: 0, 17, 60, 79, 50, 61, 163, 26, 187, 202, 180, 221, 225, 83, 239, 156, 164, 212, 212, 188, 190
21: 0, 240, 233, 104, 247, 181, 140, 67, 98, 85, 200, 210, 115, 148, 137, 230, 36, 122, 254, 148, 175, 210
22: 0, 210, 171, 247, 242, 93, 230, 14, 109, 221, 53, 200, 74, 8, 172, 98, 80, 219, 134, 160, 105, 165, 231
23: 0, 171, 102, 146, 91, 49, 103, 65, 17, 193, 150, 14, 25, 183, 248, 94, 164, 224, 192, 1, 78, 56, 147, 253
24: 0, 229, 121, 135, 48, 211, 117, 251, 126, 159, 180, 169, 152, 192, 226, 228, 218, 111, 0, 117, 232, 87, 96, 227, 21
25: 0, 231, 181, 156, 39, 170, 26, 12, 59, 15, 148, 201, 54, 66, 237, 208, 99, 167, 144, 182, 95, 243, 129, 178, 252, 45
26: 0, 173, 125, 158, 2, 103, 182, 118, 17, 145, 201, 111, 28, 165, 53, 161, 21, 245, 142, 13, 102, 48, 227, 153, 145, 218, 70
27: 0, 79, 228, 8, 165, 227, 21, 180, 29, 9, 237, 70, 99, 45, 58, 138, 135, 73, 126, 172, 94, 216, 193, 157, 26, 17, 149, 96
28: 0, 168, 223, 200, 104, 224, 234, 108, 180, 110, 190, 195, 147, 205, 27, 232, 201, 21, 43, 245, 87, 42, 195, 212, 119, 242, 37, 9, 123
29: 0, 156, 45, 183, 29, 151, 219, 54, 96, 249, 24, 136, 5, 241, 175, 189, 28, 75, 234, 150, 148, 23, 9, 202, 162, 68, 250, 140, 24, 151
30: 0, 41, 173, 145, 152, 216, 31, 179, 182, 50, 48, 110, 86, 239, 96, 222, 125, 42, 173, 226, 193, 224, 130, 156, 37, 251, 216, 238, 40, 192, 180
31: 0, 20, 37, 252, 93, 63, 75, 225, 31, 115, 83, 113, 39, 44, 73, 122, 137, 118, 119, 144, 248, 248, 55, 1, 225, 105, 123, 183, 117, 187, 200, 210
32: 0, 10, 6, 106, 190, 249, 167, 4, 67, 209, 138, 138, 32, 242, 123, 89, 27, 120, 185, 80, 156, 38, 69, 171, 60, 28, 222, 80, 52, 254, 185, 220, 241
33: 0, 245, 231, 55, 24, 71, 78, 76, 81, 225, 212, 173, 37, 215, 46, 119, 229, 245, 167, 126, 72, 181, 94, 165, 210, 98, 125, 159, 184, 169, 232, 185, 231, 18
34: 0, 111, 77, 146, 94, 26, 21, 108, 19, 105, 94, 113, 193, 86, 140, 163, 125, 58, 158, 229, 239, 218, 103, 56, 70, 114, 61, 183, 129, 167, 13, 98, 62, 129, 51
35: 0, 7, 94, 143, 81, 247, 127, 202, 202, 194, 125, 146, 29, 138, 162, 153, 65, 105, 122, 116, 238, 26, 36, 216, 112, 125, 228, 15, 49, 8, 162, 30, 126, 111, 58, 85
36: 0, 200, 183, 98, 16, 172, 31, 246, 234, 60, 152, 115, 0, 167, 152, 113, 248, 238, 107, 18, 63, 218, 37, 87, 210, 105, 177, 120, 74, 121, 196, 117, 251, 113, 233, 30, 120
37: 0, 154, 75, 141, 180, 61, 165, 104, 232, 46, 227, 96, 178, 92, 135, 57, 162, 120, 194, 212, 174, 252, 183, 42, 35, 157, 111, 23, 133, 100, 8, 105, 37, 192, 189, 159, 19, 156
38: 0, 159, 34, 38, 228, 230, 59, 243, 95, 49, 218, 176, 164, 20, 65, 45, 111, 39, 81, 49, 118, 113, 222, 193, 250, 242, 168, 217, 41, 164, 247, 177, 30, 238, 18, 120, 153, 60, 193
39: 0, 81, 216, 174, 47, 200, 150, 59, 156, 89, 143, 89, 166, 183, 170, 152, 21, 165, 177, 113, 132, 234, 5, 154, 68, 124, 175, 196, 157, 249, 233, 83, 24, 153, 241, 126, 36, 116, 19, 231
40: 0, 59, 116, 79, 161, 252, 98, 128, 205, 128, 161, 247, 57, 163, 56, 235, 106, 53, 26, 187, 174, 226, 104, 170, 7, 175, 35, 181, 114, 88, 41, 47, 163, 125, 134, 72, 20, 232, 53, 35, 15
41: 0, 132, 167, 52, 139, 184, 223, 149, 92, 250, 18, 83, 33, 127, 109, 194, 7, 211, 242, 109, 66, 86, 169, 87, 96, 187, 159, 114, 172, 118, 208, 183, 200, 82, 179, 38, 39, 34, 242, 142, 147, 55
42: 0, 250, 103, 221, 230, 25, 18, 137, 231, 0, 3, 58, 242, 221, 191, 110, 84, 230, 8, 188, 106, 96, 147, 15, 131, 139, 34, 101, 223, 39, 101, 213, 199, 237, 254, 201, 123, 171, 162, 194, 117, 50, 96
43: 0, 96, 67, 3, 245, 217, 215, 33, 65, 240, 109, 144, 63, 21, 131, 38, 101, 153, 128, 55, 31, 237, 3, 94, 160, 20, 87, 77, 56, 191, 123, 207, 75, 82, 0, 122, 132, 101, 145, 215, 15, 121, 192, 138
44: 0, 190, 7, 61, 121, 71, 246, 69, 55, 168, 188, 89, 243, 191, 25, 72, 123, 9, 145, 14, 247, 1, 238, 44, 78, 143, 62, 224, 126, 118, 114, 68, 163, 52, 194, 217, 147, 204, 169, 37, 130, 113, 102, 73, 181
45: 0, 6, 172, 72, 250, 18, 171, 171, 162, 229, 187, 239, 4, 187, 11, 37, 228, 102, 72, 102, 22, 33, 73, 95, 99, 132, 1, 15, 89, 4, 112, 130, 95, 211, 235, 227, 58, 35, 88, 132, 23, 44, 165, 54, 187, 225
46: 0, 112, 94, 88, 112, 253, 224, 202, 115, 187, 99, 89, 5, 54, 113, 129, 44, 58, 16, 135, 216, 169, 211, 36, 1, 4, 96, 60, 241, 73, 104, 234, 8, 249, 245, 119, 174, 52, 25, 157, 224, 43, 202, 223, 19, 82, 15
47: 0, 76, 164, 229, 92, 79, 168, 219, 110, 104, 21, 220, 74, 19, 199, 195, 100, 93, 191, 43, 213, 72, 56, 138, 161, 125, 187, 119, 250, 189, 137, 190, 76, 126, 247, 93, 30, 132, 6, 58, 213, 208, 165, 224, 152, 133, 91, 61
48: 0, 228, 25, 196, 130, 211, 146, 60, 24, 251, 90, 39, 102, 240, 61, 178, 63, 46, 123, 115, 18, 221, 111, 135, 160, 182, 205, 107, 206, 95, 150, 120, 184, 91, 21, 247, 156, 140, 238, 191, 11, 94, 227, 84, 50, 163, 39, 34, 108
49: 0, 172, 121, 1, 41, 193, 222, 237, 64, 109, 181, 52, 120, 212, 226, 239, 245, 208, 20, 246, 34, 225, 204, 134, 101, 125, 206, 69, 138, 250, 0, 77, 58, 143, 185, 220, 254, 210, 190, 112, 88, 91, 57, 90, 109, 5, 13, 181, 25, 156
50: 0, 232, 125, 157, 161, 164, 9, 118, 46, 209, 99, 203, 193, 35, 3, 209, 111, 195, 242, 203, 225, 46, 13, 32, 160, 126, 209, 130, 160, 242, 215, 242, 75, 77, 42, 189, 32, 113, 65, 124, 69, 228, 114, 235, 175, 124, 170, 215, 232, 133, 205
51: 0, 213, 166, 142, 43, 10, 216, 141, 163, 172, 180, 102, 70, 89, 62, 222, 62, 42, 210, 151, 163, 218, 70, 77, 39, 166, 191, 114, 202, 245, 188, 183, 221, 75, 212, 27, 237, 127, 204, 235, 62, 190, 232, 18, 46, 171, 15, 98, 247, 66, 163, 0
52: 0, 116, 50, 86, 186, 50, 220, 251, 89, 192, 46, 86, 127, 124, 19, 184, 233, 151, 215, 22, 14, 59, 145, 37, 242, 203, 134, 254, 89, 190, 94, 59, 65, 124, 113, 100, 233, 235, 121, 22, 76, 86, 97, 39, 242, 200, 220, 101, 33, 239, 254, 116, 51
53: 0, 122, 214, 231, 136, 199, 11, 6, 205, 124, 72, 213, 117, 187, 60, 147, 201, 73, 75, 33, 146, 171, 247, 118, 208, 157, 177, 203, 235, 83, 45, 226, 202, 229, 168, 7, 57, 237, 235, 200, 124, 106, 254, 165, 14, 147, 0, 57, 42, 31, 178, 213, 173, 103
54: 0, 183, 26, 201, 87, 210, 221, 113, 21, 46, 65, 45, 50, 238, 184, 249, 225, 102, 58, 209, 218, 109, 165, 26, 95, 184, 192, 52, 245, 35, 254, 238, 175, 172, 79, 123, 25, 122, 43, 120, 108, 215, 80, 128, 201, 235, 8, 153, 59, 101, 31, 198, 76, 31, 156
55: 0, 38, 197, 123, 167, 16, 87, 178, 238, 227, 97, 148, 247, 26, 90, 228, 182, 236, 197, 47, 249, 36, 213, 54, 113, 181, 74, 177, 204, 155, 61, 47, 42, 0, 132, 144, 251, 200, 38, 38, 138, 54, 44, 64, 19, 22, 206, 16, 10, 228, 211, 161, 171, 44, 194, 210
56: 0, 106, 120, 107, 157, 164, 216, 112, 116, 2, 91, 248, 163, 36, 201, 202, 229, 6, 144, 254, 155, 135, 208, 170, 209, 12, 139, 127, 142, 182, 249, 177, 174, 190, 28, 10, 85, 239, 184, 101, 124, 152, 206, 96, 23, 163, 61, 27, 196, 247, 151, 154, 202, 207, 20, 61, 10
57: 0, 58, 140, 237, 93, 106, 61, 193, 2, 87, 73, 194, 215, 159, 163, 10, 155, 5, 121, 153, 59, 248, 4, 117, 22, 60, 177, 144, 44, 72, 228, 62, 1, 19, 170, 113, 158, 25, 175, 199, 139, 90, 1, 210, 7, 119, 154, 89, 159, 130, 122, 46, 147, 190, 135, 94, 68, 66
58: 0, 82, 116, 26, 247, 66, 27, 62, 107, 252, 182, 200, 185, 235, 55, 251, 242, 210, 144, 154, 237, 176, 141, 192, 248, 152, 249, 206, 85, 253, 142, 65, 165, 125, 23, 24, 30, 122, 240, 214, 6, 129, 218, 29, 145, 127, 134, 206, 245, 117, 29, 41, 63, 159, 142, 233, 125, 148, 123
59: 0, 57, 115, 232, 11, 195, 217, 3, 206, 77, 67, 29, 166, 180, 106, 118, 203, 17, 69, 152, 213, 74, 44, 49, 43, 98, 61, 253, 122, 14, 43, 209, 143, 9, 104, 107, 171, 224, 57, 254, 251, 226, 232, 221, 194, 240, 117, 161, 82, 178, 246, 178, 33, 50, 86, 215, 239, 180, 180, 181
60: 0, 107, 140, 26, 12, 9, 141, 243, 197, 226, 197, 219, 45, 211, 101, 219, 120, 28, 181, 127, 6, 100, 247, 2, 205, 198, 57, 115, 219, 101, 109, 160, 82, 37, 38, 238, 49, 160, 209, 121, 86, 11, 124, 30, 181, 84, 25, 194, 87, 65, 102, 190, 220, 70, 27, 209, 16, 89, 7, 33, 240
61: 0, 161, 244, 105, 115, 64, 9, 221, 236, 16, 145, 148, 34, 144, 186, 13, 20, 254, 246, 38, 35, 202, 72, 4, 212, 159, 211, 165, 135, 252, 250, 25, 87, 30, 120, 226, 234, 92, 199, 72, 7, 155, 218, 231, 44, 125, 178, 156, 174, 124, 43, 100, 31, 56, 101, 204, 64, 175, 225, 169, 146, 45
62: 0, 65, 202, 113, 98, 71, 223, 248, 118, 214, 94, 0, 122, 37, 23, 2, 228, 58, 121, 7, 105, 135, 78, 243, 118, 70, 76, 223, 89, 72, 50, 70, 111, 194, 17, 212, 126, 181, 35, 221, 117, 235, 11, 229, 149, 147, 123, 213, 40, 115, 6, 200, 100, 26, 246, 182, 218, 127, 215, 36, 186, 110, 106
63: 0, 30, 71, 36, 71, 19, 195, 172, 110, 61, 2, 169, 194, 90, 136, 59, 182, 231, 145, 102, 39, 170, 231, 214, 67, 196, 207, 53, 112, 246, 90, 90, 121, 183, 146, 74, 77, 38, 89, 22, 231, 55, 56, 242, 112, 217, 110, 123, 62, 201, 217, 128, 165, 60, 181, 37, 161, 246, 132, 246, 18, 115, 136, 168
64: 0, 45, 51, 175, 9, 7, 158, 159, 49, 68, 119, 92, 123, 177, 204, 187, 254, 200, 78, 141, 149, 119, 26, 127, 53, 160, 93, 199, 212, 29, 24, 145, 156, 208, 150, 218, 209, 4, 216, 91, 47, 184, 146, 47, 140, 195, 195, 125, 242, 238, 63, 99, 108, 140, 230, 242, 31, 204, 11, 178, 243, 217, 156, 213, 231
65: 0, 137, 158, 247, 240, 37, 238, 214, 128, 99, 218, 46, 138, 198, 128, 92, 219, 109, 139, 166, 25, 66, 67, 14, 58, 238, 149, 177, 195, 221, 154, 171, 48, 80, 12, 59, 190, 228, 19, 55, 208, 92, 112, 229, 37, 60, 10, 47, 81, 0, 192, 37, 171, 175, 147, 128, 73, 166, 61, 149, 12, 24, 95, 70, 113, 40
66: 0, 5, 118, 222, 180, 136, 136, 162, 51, 46, 117, 13, 215, 81, 17, 139, 247, 197, 171, 95, 173, 65, 137, 178, 68, 111, 95, 101, 41, 72, 214, 169, 197, 95, 7, 44, 154, 77, 111, 236, 40, 121, 143, 63, 87, 80, 253, 240, 126, 217, 77, 34, 232, 106, 50, 168, 82, 76, 146, 67, 106, 171, 25, 132, 93, 45, 105
67: 0, 191, 172, 113, 86, 7, 166, 246, 185, 155, 250, 98, 113, 89, 86, 214, 225, 156, 190, 58, 33, 144, 67, 179, 163, 52, 154, 233, 151, 104, 251, 160, 126, 175, 208, 225, 70, 227, 146, 4, 152, 139, 103, 25, 107, 61, 204, 159, 250, 193, 225, 105, 160, 98, 167, 2, 53, 16, 242, 83, 210, 196, 103, 248, 86, 211, 41, 171
68: 0, 247, 159, 223, 33, 224, 93, 77, 70, 90, 160, 32, 254, 43, 150, 84, 101, 190, 205, 133, 52, 60, 202, 165, 220, 203, 151, 93, 84, 15, 84, 253, 173, 160, 89, 227, 52, 199, 97, 95, 231, 52, 177, 41, 125, 137, 241, 166, 225, 118, 2, 54, 32, 82, 215, 175, 198, 43, 238, 235, 27, 101, 184, 127, 3, 5, 8, 163, 238
生成多項式の係数 GF(28)
生成多項式の係数 $\alpha^n$ は、多項式
B \left( x \right) = x^8 + x^4 + x^3 + x^2 + 1 \\
\to 1\_00011101
での剰余($GF(2)$ 演算{例})を用いて
\begin{eqnarray}
1 \equiv \alpha^0 \pmod{ B \left( \alpha \right) } & \to & 00000001 \\
\alpha \equiv \alpha^1 \pmod{ B \left( \alpha \right) } & \to & 00000010 \\
\alpha^2 \equiv \alpha^2 \pmod{ B \left( \alpha \right) } & \to & 00000100 \\
\cdots \\
\alpha^7 \equiv \alpha^7 \pmod{ B \left( \alpha \right) } & \to & 10000000 \\
( 00011101 & \leftarrow & 100000000 \oplus 100011101 ) \\
\alpha^4 + \alpha^3 + \alpha^2 + \alpha^0 \equiv \alpha^8 \pmod{ B \left( \alpha \right) } & \to & 00011101 \\
\alpha^5 + \alpha^4 + \alpha^3 + \alpha^1 \equiv \alpha^9 \pmod{ B \left( \alpha \right) } & \to & 00111010 \\
\alpha^6 + \alpha^5 + \alpha^4 + \alpha^2 \equiv \alpha^{10} \pmod{ B \left( \alpha \right) } & \to & 01110100 \\
\alpha^7 + \alpha^6 + \alpha^5 + \alpha^3 \equiv \alpha^{11} \pmod{ B \left( \alpha \right) } & \to & 11101000 \\
( 11001101 & \leftarrow & 111010000 \oplus 100011101 ) \\
\alpha^7 + \alpha^6 + \alpha^3 + \alpha^2 + \alpha^0 \equiv \alpha^{12} \pmod{ B \left( \alpha \right) } & \to & 11001101 \\
\cdots \\
\alpha^7 + \alpha^3 + \alpha^2 + \alpha^1 \equiv \alpha^{254} \pmod{ B \left( \alpha \right) } & \to & 10001110 \\
( 00000001 & \leftarrow & 100011100 \oplus 100011101 ) \\
1 \equiv \alpha^{0} \equiv \alpha^{255} \pmod{ B \left( \alpha \right) } & \to & 00000001 \\
\ \\
\alpha^n \pmod{ B \left( \alpha \right) } & \to & \left( 1 \ll n \right) \pmod{ 100011101 }
\end{eqnarray}
となっています。(指数 $n$ は左シフト数に相当)
**算出した値** (プログラムの変数 ELEMENT)
1, 2, 4, 8, 16, 32, 64, 128, 29, 58, 116, 232, 205, 135, 19,
38, 76, 152, 45, 90, 180, 117, 234, 201, 143, 3, 6, 12, 24, 48,
96, 192, 157, 39, 78, 156, 37, 74, 148, 53, 106, 212, 181, 119, 238,
193, 159, 35, 70, 140, 5, 10, 20, 40, 80, 160, 93, 186, 105, 210,
185, 111, 222, 161, 95, 190, 97, 194, 153, 47, 94, 188, 101, 202, 137,
15, 30, 60, 120, 240, 253, 231, 211, 187, 107, 214, 177, 127, 254, 225,
223, 163, 91, 182, 113, 226, 217, 175, 67, 134, 17, 34, 68, 136, 13,
26, 52, 104, 208, 189, 103, 206, 129, 31, 62, 124, 248, 237, 199, 147,
59, 118, 236, 197, 151, 51, 102, 204, 133, 23, 46, 92, 184, 109, 218,
169, 79, 158, 33, 66, 132, 21, 42, 84, 168, 77, 154, 41, 82, 164,
85, 170, 73, 146, 57, 114, 228, 213, 183, 115, 230, 209, 191, 99, 198,
145, 63, 126, 252, 229, 215, 179, 123, 246, 241, 255, 227, 219, 171, 75,
150, 49, 98, 196, 149, 55, 110, 220, 165, 87, 174, 65, 130, 25, 50,
100, 200, 141, 7, 14, 28, 56, 112, 224, 221, 167, 83, 166, 81, 162,
89, 178, 121, 242, 249, 239, 195, 155, 43, 86, 172, 69, 138, 9, 18,
36, 72, 144, 61, 122, 244, 245, 247, 243, 251, 235, 203, 139, 11, 22,
44, 88, 176, 125, 250, 233, 207, 131, 27, 54, 108, 216, 173, 71, 142,
01, 02, 04, 08, 10, 20, 40, 80, 1d, 3a, 74, e8, cd, 87, 13,
26, 4c, 98, 2d, 5a, b4, 75, ea, c9, 8f, 03, 06, 0c, 18, 30,
60, c0, 9d, 27, 4e, 9c, 25, 4a, 94, 35, 6a, d4, b5, 77, ee,
c1, 9f, 23, 46, 8c, 05, 0a, 14, 28, 50, a0, 5d, ba, 69, d2,
b9, 6f, de, a1, 5f, be, 61, c2, 99, 2f, 5e, bc, 65, ca, 89,
0f, 1e, 3c, 78, f0, fd, e7, d3, bb, 6b, d6, b1, 7f, fe, e1,
df, a3, 5b, b6, 71, e2, d9, af, 43, 86, 11, 22, 44, 88, 0d,
1a, 34, 68, d0, bd, 67, ce, 81, 1f, 3e, 7c, f8, ed, c7, 93,
3b, 76, ec, c5, 97, 33, 66, cc, 85, 17, 2e, 5c, b8, 6d, da,
a9, 4f, 9e, 21, 42, 84, 15, 2a, 54, a8, 4d, 9a, 29, 52, a4,
55, aa, 49, 92, 39, 72, e4, d5, b7, 73, e6, d1, bf, 63, c6,
91, 3f, 7e, fc, e5, d7, b3, 7b, f6, f1, ff, e3, db, ab, 4b,
96, 31, 62, c4, 95, 37, 6e, dc, a5, 57, ae, 41, 82, 19, 32,
64, c8, 8d, 07, 0e, 1c, 38, 70, e0, dd, a7, 53, a6, 51, a2,
59, b2, 79, f2, f9, ef, c3, 9b, 2b, 56, ac, 45, 8a, 09, 12,
24, 48, 90, 3d, 7a, f4, f5, f7, f3, fb, eb, cb, 8b, 0b, 16,
2c, 58, b0, 7d, fa, e9, cf, 83, 1b, 36, 6c, d8, ad, 47, 8e,
生成多項式を求める
誤り訂正コード語数 $\left( m = n - 1 \right)$ に対して、生成多項式 $G_n \left( x \right)$ は
\begin{eqnarray}
G_1 \left( x \right) & = & x - 1 \\
G_2 \left( x \right) & = & \left( x - 1 \right) \left( x - \alpha \right) \\
G_3 \left( x \right) & = & \left( x - 1 \right) \left( x - \alpha \right) \left( x - \alpha^2 \right) \\
\cdots \\
\ \\
G_n \left( x \right) & = & \prod_{k=0}^{n-1} \left( x - \alpha^k \right) \\
\end{eqnarray}
となっています。
ここから、$GF \left( 2^8 \right)$ での加減算は排他的論理和(XOR)だから($\alpha = - \alpha$)となるので、マイナス記号をプラスに変更して考えます。
各項の係数を全て $\alpha^n$ 形式にして展開すると
\begin{eqnarray}
G_1 \left( x \right) & = & \alpha^0 x + \alpha^0 \\
& \to & \left( 0, 0 \right) \\
G_2 \left( x \right) & = & \left( \alpha^0 x + \alpha^0 \right) \left( \alpha^0 x + \alpha^1 \right) \\
& = & \alpha^0 x^2 + \left( \alpha^1 + \alpha^0 \right) x + \alpha^1 \\
& = & \alpha^0 x^2 + \alpha^{25} x + \alpha^1 \\
& \to & \left( 0, 25, 1 \right) \\
G_3 \left( x \right) & = & \left( \alpha^0 x + \alpha^1 \right) \left( \alpha^0 x + \alpha^1 \right) \left( \alpha^0 x + \alpha^2 \right) \\
& = & \left( \alpha^0 x^2 + \alpha^{25} x + \alpha^1 \right) \left( \alpha^0 x + \alpha^2 \right) \\
& = & \alpha^0 x^3 + \left( \alpha^{25} + \alpha^2 \right) x^2 + \left( \alpha^{25+2} + \alpha^1 \right) x + \alpha^{1+2} \\
& = & \alpha^0 x^3 + \alpha^{198} x^2 + \alpha^{199} x + \alpha^3 \\
& \to & \left( 0, 198, 199, 3 \right) \\
\cdots \\
\end{eqnarray}
指数の配列だけで処理できます。
$\left( \alpha^x + \alpha^y = \alpha^z \right)$ の $z$ は
z = EXPONENT[ELEMENT[x] ^ ELEMENT[y]]
で求められます。
注意:ここでは $\left( \alpha^x + \alpha^y \ne 0 \right)$ なので z が None になりませんが、他所ではありえます($x=y$ の場合)
あとは、(0, 0) を用意して、順次 $\left( x + \alpha^k \right)$ を掛ける計算の繰り返しです。
「QRコード」はデンソーウェーブの登録商標です。