Page 40 - MATINF Nr.2
P. 40

40                                         S.C. Andronescu, C. B˘alc˘au, D. Constantin, D.A. Popescu



            Demonstrat¸ie. Conform lemei anterioare, a(n!) ≥ b(n!), deci conform (1) avem n! = 10       b(n!)  ·
            2 a(n!)−b(n!)  · (M10 + c(n!)), de unde rezult˘a afirmat , ia din enunt , .

            Observat ,ia 5. Algoritmul pentru determinarea lui r(n!) bazat pe calculul lui n! are, conform
            Observat , iei 1 s , i Lemelor 5 s , i 3, complexitatea Θ(n), dar este practic inoperabil pentru valori
            mari ale lui n din cauza m˘arimii num˘arului n!.
                Cum n! = 1 · 2 · . . . · n = m 1 · m 2 · . . . · m n cu m k = k pentru orice k = 1, n, ˆınlocuind ˆın
            algoritmul UCNP instruct , iunea p ← m k cu p ← k obt , inem un algoritm pentru determinarea
            lui r(n!) care evit˘a calculul lui n! s , i, conform Propozit , iilor 5 s , i 4 s , i Lemei 3, are de asemenea
            complexitatea Θ(n).
                                                                                          3
                                                                         2
            Exemplul 6. r(11!) = r(1 · 2 · 3 · . . . · 11) = r(1 · 2 · 3 · 2 · 5 · 2 · 3 · 7 · 2 · 9 · 2 · 5 · 11) =
                    2
                8
                                         Ä
                                                                    ä
            r (2 · 5 · 3 · 3 · 7 · 9 · 1) = u 6 · 2 (8−2) MOD 4  · 3 · 3 · 7 · 9 = 8.
                Totus , i, acest procedeu este practic imposibil de aplicat pentru valori mari ale lui n, s˘a zicem,
            1918!, dac˘a nu se utilizeaz˘a echipament electronic de calcul.
                ˆ
                In continuare vom prezenta un algoritm mai eficient decˆat algoritmul descris ˆın observat , ia
            anterioar˘a, s , i anume un algoritm subliniar pentru determinarea lui r(n!). Avem nevoie de alte
            cˆateva rezultate.

            Observat ,ia 6. Dac˘a m este un num˘ar natural nedivizibil cu 10, atunci u(m) 6= 0, deci r(m) =
            u(m).
            Observat ,ia 7. Fie m 1 , m 2 , . . . , m n numere naturale nenule astfel ˆıncˆat r(m i ) 6= 5 pentru orice
            i = 1, n. Atunci u (r(m 1 ) · r(m 2 ) · . . . · r(m n )) 6= 0 s , i conform Observat , iei 4 avem r(m 1 · m 2 ·
            . . . · m n ) = u (r(m 1 ) · r(m 2 ) · . . . · r(m n )) .

            Lema 6. Fie n un num˘ar natural, n ≥ 2. Atunci r(n!) ∈ {2, 4, 6, 8}.

            Demonstrat¸ie. Conform Lemei 4, a(n!) > b(n!), deci conform (1) avem


                                        n! = 10 b(n!)  · 2 a(n!)−b(n!)  · (M10 + c(n!)) ,

            de unde rezult˘a c˘a
                                                   Ä                          ä
                                         r(n!) = r 2 a(n!)−b(n!)  · (M10 + c(n!)) .
            Dar
                                        Ä  a(n!)−b(n!) ä  Ä  a(n!)−b(n!)  ä
                                      r 2            = u 2           ∈ {2, 4, 6, 8},
                                r (M10 + c(n!)) = u (M10 + c(n!)) = c(n!) ∈ {1, 3, 7, 9},
                                                     Ä Ä           ä      ä
            deci, folosind s , i Observat , ia 7, r(n!) = u r 2 a(n!)−b(n!)  · c(n!) ∈ {2, 4, 6, 8}.

            Lema 7. Fie m s , i k dou˘a numere naturale astfel ˆıncˆat m este divizibil cu 2 k+1 . Atunci
                                    Ä     k  ä   Ä     k MOD 4  ä   Ä     4−(k MOD 4) ä
                                  u m : 2    = u m : 2          = u m · 2             .

                                                                          ∗
            Demonstrat¸ie. Din ipotez˘a rezult˘a c˘a m = 2 k+p  · y, cu p ∈ N s , i y impar. Avem

                              Ä     k  ä     p             p
                            u m : 2    = u (2 · y) = u (u(2 ) · u(y)) ,
                        Ä     k MOD 4  ä   Ä  p  k−(k MOD 4)   ä     Ä   p      k−(k MOD 4)       ä
                      u m : 2          = u 2 · 2            · y = u u(2 ) · u(2            ) · u(y)
                                                                                         p
                                               p
                                                                    p
                                       = u (u(2 ) · 6 · u(y)) = u (u(2 · 6) · u(y)) = u (u(2 ) · u(y))
   35   36   37   38   39   40   41   42   43   44   45