Übung Algorithmische Algebra, 31.10.2002

•Ideale

ZIdeal[{a_Integer}, r_: 10] := Table[a i , {i, -Quotient[r, 2], Quotient[r, 2]}]

ZIdeal[{a_Integer, b_Integer},    r_: 10] :=  Block[{lb = r, i, j, pos, len = Quotient[r, 2]},  l = Union [Flatten[Table[a i + b j , {i, -lb, lb}, {j, -lb, lb}]]] ; pos = Part[Position[l, 0], 1, 1] ;  Take[l, {pos - len, pos + len}] ]

SetAttributes[CirclePlus, HoldAll] SetAttributes[CircleTimes, HoldAll]

ZIdeal[a1_List,    r1_: 10] ⊕ ZIdeal[a2_List,    r2_: 10] :=  Block[{r = 2 Max[r1, r2], rp = Quotient[Max[r1, r2], 2], i, l},  l = Union[Flatten[Outer[Plus, ZIdeal[a1, r], ZIdeal[a2, r]]]] ;  i = Position[l, 0] ;  Take[l, {i[[1]][[1]] - rp, i[[1]][[1]] + rp}] ]

ZIdeal[a1_List,    r1_: 10] ⊗ ZIdeal[a2_List,    r2_: 10] :=  Block[{r = 2 Max[r1, r2], rp = Quotient[Max[r1, r2], 2], i, l},  l = Union[Flatten[Outer[Times, ZIdeal[a1, r], ZIdeal[a2, r]]]] ;  i = Position[l, 0] ;  Take[l, {i[[1]][[1]] - rp, i[[1]][[1]] + rp}] ]

•Aufgabe 1

ZIdeal[{2}] ⊕ ZIdeal[{4}]

{-10, -8, -6, -4, -2, 0, 2, 4, 6, 8, 10}

ZIdeal[{2, 4}] ⊗ ZIdeal[{5}]

{-50, -40, -30, -20, -10, 0, 10, 20, 30, 40, 50}

ZIdeal[{3}] ⊕ ZIdeal[{15}]

{-15, -12, -9, -6, -3, 0, 3, 6, 9, 12, 15}

•Aufgabe 2

ZIdeal[{12}, 40] ∩ ZIdeal[{16}, 40]

{-240, -192, -144, -96, -48, 0, 48, 96, 144, 192, 240}

LCM[12, 16]

48

ZIdeal[{3}, 40] ∩ ZIdeal[{4}, 40] ZIdeal[{3}] ⊗ ZIdeal[{4}]

{-60, -48, -36, -24, -12, 0, 12, 24, 36, 48, 60}

{-60, -48, -36, -24, -12, 0, 12, 24, 36, 48, 60}


Converted by Mathematica  (November 19, 2002)