Liczenie podziaªów liczby: algorytm Eulera

Podobne dokumenty
Metodydowodzenia twierdzeń

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Metody dowodzenia twierdze«

JAO - J zyki, Automaty i Obliczenia - Wykªad 1. JAO - J zyki, Automaty i Obliczenia - Wykªad 1

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Ciaªa i wielomiany. 1 Denicja ciaªa. Ciaªa i wielomiany 1

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

1 Metody iteracyjne rozwi zywania równania f(x)=0

XVII Warmi«sko-Mazurskie Zawody Matematyczne

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Zbiory i odwzorowania

O pewnym zadaniu olimpijskim

Wybrane poj cia i twierdzenia z wykªadu z teorii liczb

Interpolacja funkcjami sklejanymi

Funkcje, wielomiany. Informacje pomocnicze

A = n. 2. Ka»dy podzbiór zbioru sko«czonego jest zbiorem sko«czonym. Dowody tych twierdze«(elementarne, lecz nieco nu» ce) pominiemy.

ELEMENTARNA TEORIA LICZB. 1. Podzielno±

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

x y x y x y x + y x y

Materiaªy do Repetytorium z matematyki

Informacje pomocnicze

Relacj binarn okre±lon w zbiorze X nazywamy podzbiór ϱ X X.

Caªkowanie numeryczne - porównanie skuteczno±ci metody prostokatów, metody trapezów oraz metody Simpsona

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Wielomiany o wspóªczynnikach rzeczywistych

Ekstremalnie fajne równania

Zagadnienia na wej±ciówki z matematyki Technologia Chemiczna

Matematyka dyskretna dla informatyków

Funkcja kwadratowa, wielomiany oraz funkcje wymierne

Elementy geometrii w przestrzeni R 3

Lekcja 9 - LICZBY LOSOWE, ZMIENNE

ANALIZA NUMERYCZNA. Grzegorz Szkibiel. Wiosna 2014/15

1 Bª dy i arytmetyka zmiennopozycyjna

Liniowe równania ró»niczkowe n tego rz du o staªych wspóªczynnikach

1 Granice funkcji wielu zmiennych.

Vincent Van GOGH: M»czyzna pij cy li»ank kawy. Radosªaw Klimek. J zyk programowania Java

Równania ró»niczkowe I rz du (RRIR) Twierdzenie Picarda. Anna D browska. WFTiMS. 23 marca 2010

Wykªad 7. Ekstrema lokalne funkcji dwóch zmiennych.

Indeksowane rodziny zbiorów

Proste modele o zªo»onej dynamice

Macierze. 1 Podstawowe denicje. 2 Rodzaje macierzy. Denicja

Podstawy logiki i teorii zbiorów wiczenia

Ukªady równa«liniowych

2 Liczby rzeczywiste - cz. 2

Zbiory ograniczone i kresy zbiorów

Zadania z PM II A. Strojnowski str. 1. Zadania przygotowawcze z Podstaw Matematyki seria 2

Przekroje Dedekinda 1

ZADANIA. Maciej Zakarczemny

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Mierzalne liczby kardynalne

1 0 Je»eli wybierzemy baz A = ((1, 1), (2, 1)) to M(f) A A =. 0 2 Daje to znacznie lepszy opis endomorzmu f.

i, lub, nie Cegieªki buduj ce wspóªczesne procesory. Piotr Fulma«ski 5 kwietnia 2017

1 Poj cia pomocnicze. Przykªad 1. A A d

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

EGZAMIN MATURALNY Z MATEMATYKI

EGZAMIN MATURALNY Z MATEMATYKI

X WARMI SKO-MAZURSKIE ZAWODY MATEMATYCZNE 18 maja 2012 (szkoªy ponadgimnazjalne)

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

2 Podstawowe obiekty kombinatoryczne

Matematyka dyskretna dla informatyków

Lab. 02: Algorytm Schrage

W poprzednim odcinku... Podstawy matematyki dla informatyków. Relacje równowa»no±ci. Zbiór (typ) ilorazowy. Klasy abstrakcji

Ekstremalnie maªe zbiory

Matematyka 1. Šukasz Dawidowski. Instytut Matematyki, Uniwersytet l ski

c Marcin Sydow Przepªywy Grafy i Zastosowania Podsumowanie 12: Przepªywy w sieciach

Bash i algorytmy. Elwira Wachowicz. 20 lutego

Macierze i Wyznaczniki

Statystyka matematyczna - ZSTA LMO

c Marcin Sydow Spójno± Grafy i Zastosowania Grafy Eulerowskie 2: Drogi i Cykle Grafy Hamiltonowskie Podsumowanie

Zdzisªaw Dzedzej, Katedra Analizy Nieliniowej pok. 611 Kontakt:

Wektory w przestrzeni

punkcie. Jej granica lewostronna i prawostronna w punkcie x = 2 wynosz odpowiednio:

ZADANIA OTWARTE KRÓTKIEJ ODPOWIEDZI

1 a + b 1 = 1 a + 1 b 1. (a + b 1)(a + b ab) = ab, (a + b)(a + b ab 1) = 0, (a + b)[a(1 b) + (b 1)] = 0,

CAŠKA NIEOZNACZONA. Politechnika Lubelska. Z.Šagodowski. 18 lutego 2016

Twierdzenie Wainera. Marek Czarnecki. Warszawa, 3 lipca Wydziaª Filozoi i Socjologii Uniwersytet Warszawski

Lekcja 8 - ANIMACJA. 1 Polecenia. 2 Typy animacji. 3 Pierwsza animacja - Mrugaj ca twarz

Liniowe zadania najmniejszych kwadratów

Czy funkcja zadana wzorem f(x) = ex e x. 1 + e. = lim. e x + e x lim. lim. 2 dla x = 1 f(x) dla x (0, 1) e e 1 dla x = 1

Macierze i Wyznaczniki

Wst p teoretyczny do wiczenia nr 3 - Elementy kombinatoryki

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Maszyny Turinga i problemy nierozstrzygalne. Maszyny Turinga i problemy nierozstrzygalne

Algorytmy tekstowe. Andrzej Jastrz bski. Akademia ETI

Podstawy matematyki dla informatyków

Podzbiory Symbol Newtona Zasada szuadkowa Dirichleta Zasada wª czania i wyª czania. Ilo± najkrótszych dróg. Kombinatoryka. Magdalena Lema«ska

Lekcja 5 Programowanie - Nowicjusz

Szybkie mno»enie wielomianów i macierzy

KLASYCZNE ZDANIA KATEGORYCZNE. ogólne - orzekaj co± o wszystkich desygnatach podmiotu szczegóªowe - orzekaj co± o niektórych desygnatach podmiotu

Zliczanie Podziałów Liczb

Matematyka dyskretna dla informatyków

Wst p do sieci neuronowych 2010/2011 wykªad 7 Algorytm propagacji wstecznej cd.

Elementy geometrii analitycznej w przestrzeni

Rachunek caªkowy funkcji wielu zmiennych

Zadania z kolokwiów ze Wst pu do Informatyki. Semestr II.

Informacje pomocnicze:

Twierdzenie Wedderburna Witold Tomaszewski

Wst p do informatyki. Systemy liczbowe. Piotr Fulma«ski. 21 pa¹dziernika Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

ANALIZA MATEMATYCZNA Z ALGEBR

Rozdział 6. Pakowanie plecaka. 6.1 Postawienie problemu

Transkrypt:

Liczenie podziaªów liczby: algorytm Eulera Wojciech Rytter Podziaªy liczb s bardzo skomplikowanymi obiektami kombinatorycznymi, przedstawimy dwa algorytmy liczenia takich oblektów. Pierwszy prosty algorytm b dzie dziaªaª w czasie O(n 2 ) i pami ci O(n 2 ), natomiast drugi, pochodz cy od Eulera i oparty na tzw. liczbach pentagonalnych, w czasie O(n n) i pami ci O(n). Podziaª π = (λ 1, λ 2,... λ r ) to przedstawienie liczby n = λ 1 + λ 2 +... λ r w postaci n = λ 1 + λ 2 +... λ r, gdzie λ 1 λ 2... λ r > 0 Wszystkie podziaªy liczby n, w porz dku antyleksykogracznym, mo»na wygenerowa iteracyjnie nast puj co: szukamy pierwszego λ i 2 od prawej strony, zast pujemy λ i przez λ i 1, a pozostaªe cz ±ci na prawo dajemy tak, aby suks na prawo od λ i byª jak najwi kszy. Na przykªad podziaªy n = 5 w porz dku antyleksykogracznym to: 5, 4 + 1, 3 + 2, 3 + 1 + 1, 2 + 2 + 1, 2 + 1 + 1 + 1, 1 + 1 + 1 + 1 + 1. Oznaczmy przez p(n) liczb podziaªów liczby n, mamy: n : 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 p(n) : 1 1 2 3 5 7 11 15 22 30 42 56 77 101 135 176 231 Dla n < 0 przyjmijmy, czysto formalnie,»e p(n) = 0, natomiast p(0) = 1. Oznaczmy przez p(n, k) liczb podziaªów liczby n na k cz sci (niezerowych). Algorytm o czasie kwadratowym liczenia p(n) polega na policzeniu ( kwadratowej liczby ) warto±ci p(n, k) na podstawie rekurencji: Rekurencja wynika st d,»e mamy dwa przypadki: p(n, k) = 0 dla k < n lub k 0. p(n, k) = p(n 1, k 1) + p(n k, k) (λ k = 1) Wtedy mamy p(n 1, k 1) podziaªów pomijaj c λ k ; (λ k > 1) Wtedy mo»emy odj jeden od ka»dego λ i otrzymuj c podziaª liczby n k na k cz ±ci. W celu szybszego policzenia p(n) rozwa»ymy podziaªy na ró»ne cz ±ci, tzn. λ 1 > λ 2 >... λ 1. Niech p(n) b dzie liczb takich podziaªów. Przez p even, p even, p odd, p odd oznaczmy liczb podziaªów na parzyst /nieparzyst liczb cz ±ci (o ró»nych rozmiarach w przypadku p). Na przykªad p(15) = 27, p odd (15) = 14, p even (15) = 13, patrz Rysunek??. Zauwa»my,»e liczby p(n) s przewa»nie znacznie mniejsze od liczb p(n) (chocia» na pocz tku niewiele si ró»ni ). Mo»emy rónie» zdeniowa p(n, k) - liczb podziaªów n na ró»ne cz ±ci. Na przykªad p(50, 7) = 522, co Euler policzyª prawie 300 lat temu bez komputera (ani kalkulatora) t konkretn warto± odpwiadaj c na pytanie matematyka Ph. Naude. 1

2 Dygresja. p odd (n) = p(n). Kluczow warto±ci jest zdeniowana poni»ej funkcja: (k) = p odd (k) p even (k) Funkcje p(n), p(n) s bardzo skomplikowane, natomiast jest zadziwiaj ce,»e jest bardzo prosta. Pocz tkowe warto±ci to: k : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 (k) : 1 1 0 0-1 0-1 0 0 0 0 1 0 0 1 0 0 0 0 0 0-1 Leonard Euler odkryª dwie istotne (dla liczenia p(n)) wªasno±ci funkcji : Wªasno± 1: p(n) speªnia rekurencj : p(n) = n (k) p(n k) (1) Wªasno± 2: jak wida z pocz tkowych warto±ci (k) jest ci giem bardzo rzadkim (prawie same zera). Jest on obliczalalny ªatwo za pomoc tzw. liczb pentagonalnch, warto±ci ci gu to zera, +1 lub -1. Z tego,»e ci g (n) jest bardzo rzadki wynika,»e dla policzenia p(n) tylko O( n) warto±ci k jest niezerowych. Zatem p(n) liczymy w czasie O( n) znaj c p(n 1), p(n 2),... p(0). W sumie mamy algorytm dziaªaj cy w czasie O(n n) i pami ci O(n), o ile potramy ª two wylistowa niezerowe warto±ci (k). Leonard Euler najpierw odkryª wªasno±ci heurystycznie, a dopiero po 10 latach znalazª dowód (by mo»e wcze±niej nie miaª czasu). Zdeniujmy liczby pentagonalne (pi ciok tne) pent(i) = (3i 1)i/2 Nazwa pochodzi od interpretacji geometrycznej, podobnie jak dla liczb trójk tnych. Mamy: pent(i) = pent(i 1) + 3i + 1 Liczby pentagonalne b dziemy rónie» nazywa liczbami trapezowymi pierwszego typu, a liczby pent(i) + i nazywamy liczbami trapezowymi drugiego typu, patrz lewy/prawy trapez na Rysunku 1. Ponadto zdenujmy wspóªczynniki pentagonalne: i : 1 2 3 4 5 6 7 pent(i) : 1 5 12 22 35 51 70 Lemat Kluczowy. e(k) = { ( 1) i+1 if k = pent(i) lub k = pent(i) + i 0 w przeciwnym przypadku. (k) = e(k). (3) (2) Mo»emy teraz zapisa algorytm (jedn iteracj ) liczenia p(n) nast puj co: p(n) = i 1 ( 1) i+1 ( p(n pent(i)) + p(n pent(i) i) ) (4) W równaniu tym korzystamy jedynie z warto±ci i takich,»e pent(i) n, mamy jedynie O( n) takich warto±ci. Liczby pent(i) mo»emy ªatwo policzy. Twierdzenie. Liczby p(1), p(2),..p(n) mo»emy policzy w czasie O(n n) i pami ci O(n).

3 Dowód równania 1 Uzasadnienie jest sprytn manipulacj algebraiczn, korzystaj c z tego»e dwa wielomiany b d ce t sam funkcj maj takie same wspóªczynniki przy tych samych pot gach zmiennej. Sztuczka polega na tym,»eby te same wielomiany przedstawi na dwa ró»ne sposoby, z jednego wymno»enia otrzymujemy wynik, który przyrównujemy do wymno»enia w innej formie. Zdeniujmy: φ(x) = (1 + x + x 2 +... x n ), ψ(x) = 1 x. W 1 (x) = n i=1 φ(x i ), W 2 (x) = n i=1 ψ(x i ). Wprowad»mu notacj n = dla równo±ci wielomianów z dokªadno±ci do pot g wy»szych ni» n, inaczej mówi c bierzemy reszt z dzielenia przez x n+1. Zauwa»my,»e zachodzi dosy ªatwe równanie: W 1 (x) W 2 (x) n = 1. (5) Powy»sza równo± troch przypomina sytuacj w równo±ci (1 + x)(1 x) = 1 x 2. Przedstawimy teraz te same wielomiany w innej formie. W 1 (x) n = p(0)x 0 + p(1)x 1 + p(2)x 2 +..p(n)x n, W 2 (x) n = 1 (1)x 2 (2)x 2... (n)x n. (6) Z równania 5 dla n 1 wynika,»e wspóªczynnik przy x n w iloczynie W 1 (x) W 2 (x) wynosi zero, korzystaj c z równania 6 mo»emy ten wspóªczynnik przedstawi jako kombinacje iloczynów p(i), (j), gdzie i + j = n, w rezultacie otrzymujemy: p(n) 1 p(n 1) (1) p(n 2) (2) p(n 3) (3)... (n) p(0) = 0 St d wynika bezpo±rednio równanie 1. Dowód kluczowego lematu (równania 3) W sekcji tej rozwa»amy tylko podziaªy o ró»nych cz ±ciach. Dwód kluczowego lematu wymaga rozwa»enia interpretacji geometrycznej podziaªów. Podziaª liczby mo»e by przedstawiony w postaci diagramu zwanego diagramem Ferrersa, w kolejnym wierszu liczba elementów odpowiada liczbie λ j. Diagramy Ferrersa dla przykªadowych podziaªów liczb 22 i 26 s przedstawione na rysunku 1. S to bardzo szczególne podziaªy, które b dziemy nazywa trapezowymi. Podziaª trapezowy rz du k pierwszego typu jest postaci (k + k 1, k + k 2, k + k 3,..., k) a drugiego typu postaci (k + k, k + k 1, k + k 1,..., k + 1). Obserwacja. Podziaª trapezowy maj cy pen(k) lub pen(k) + k elementów skªada si z k cz ±ci. Rysunek 1: Trapezy rz du k, gdzie k = 4, pierwszego typu ma pen(k) elementów, a drugiego typu ma pen(k) + k elementów. Podziaªy odpowiadaj ce tego typu trapezom nazywamy podziaªami trapezowymi. Liczb n nazywamy liczb trapezow gdy istnieje podziaª n b d cy trapezowym, zawsze jest co najwy»ej jeden taki podziaª dla danego n.

4 Obserwacja. Liczby trapezowe s postaci pen(j) lub pen(j) + j. Dla trapezu π przez k(π) oznaczmy liczb elementów na prawej diagonali poczynaj c od górnej prawej strony, je±ªi odpowiadaj cym podziaªem jest (a 1, a 2,... a r ) to k(π) jest najwi ksz liczb naturaln tak,»e a i 1 = a i+1 dla i = 1, 2,... k(π) 1. Przez h(π) = a r oznaczmy liczb elementów w najmniejszej cz ±ci. Je±li podziaª nie jest trapezowy oraz h(π) k(π) to F (π) jest podziaªem powstaj cym z π przez dodanie do ka»dej z pierwszych k(π) cz ±ci po jednym elemencie i usuni cie najmniejszej (dolnej) cz ±ci, patrz Rysunek 2. Rysunek 2: Dziaªanie funkcji F. Podziaªy o parzystej/nieparzystej liczbie cz sci nazywamy parzystymi/nieparzystymi. Zauwa»my,»e funkcja F zmienia parzysto± podziaªu. Zachodzi nast puj cy dosy oczywisty fakt. Wªasno± funkcji F. F jest bijekcj mi dzy nietrapezowymi podziaª mi n z h(p) k(π) i nietrapezowymi podziaªami n z h(p) > k(π). 1 gdy n jest nieparzyst liczb trapezow p odd (k) p even (k) = 1 gdy n jest parzyst liczb trapezow (7) 0 w przeciwnym przypadku. Z powy»szej wªasno±ci wynika: p odd (k) p even (k) = e(k) dla kazdegok. Rysunek 3: Zgrupowanie podziaªów nietrapezowych liczby n = 15 korzystaj c z funkcji F. Nieoczekiwana relacja mi dzy funkcjami p(n) i σ(n) Jako ciekawostk podamy, bez uzasadnienia, pewien zwi zek dwóch pozornie odlegªych funkcji p(n), σ(n), gdzie σ(n) oznacza sum dzielników liczby n (wª cznie z n). Mamy n : 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 σ(n) : 0 1 3 4 7 6 12 8 15 13 18 12 28 14 24 24 31

5 Dla funkcji σ zachodzi prawie taka sama rekurencja jak dla p(n), jedyna ró»nica to zast pienie p(0) przez n we wzorze 1. Funkcja σ(n) speªnia rekurencj : σ(n) = n 1 (k) σ(n k) + (n) n. (8) Przykªad. Dla n = 15 mamy: σ(15) = σ(15 1) + σ(15 2) σ(15 5) σ(15 7) + σ(15 12) + 15 = 24 + 14 18 15 + 4 + 15 = 24. p(15) = p(15 1)+p(15 2) p(15 5) p(15 7)+p(15 12)+p(0) = 135+101 42 22+3+1 = 176. Poniewa» warto±ci (k) s zwi zane z liczbami pentagonalnymi tak jak poprzednio, to wszystkie warto±ci σ(n), σ(n 1),... σ(1) mo»na policzy w czasie O(n n) i pami ci O(n) tak jak poprzednio zrobili±my to dla warto±ci p(n). Zachodzi równie» inny zadziwiaj cy zwi zek: σ(n) = Jesli n = p m i i, gdzie p i liczby pierwsze to n k (k) p(n k). (9) σ(n) = (p m i+1 i 1) / (p i 1) Wydaje sie ze liczenie σ dla wszystkich liczb 1, 2,... n jednak jest szybsze korzystajac ze wzoru 8 i liczb pentagonalnych ni» korzystaj c z ostatnego wzoru. Dygresja. Liczby σ(n) s zwi zane z tzw. liczbami doskonaªymi, tzn. takimi»e σ(n) = 2n. Wiadomo, ze n parzyste jest doskonaªe wtw. gdy n = 2 p 1 (2 p 1), gdzie p, 2 p 1 s pierwsze, np. dla p = 11213, p = 30402456 (43-cia liczba doskonaªa). Pierwsze 7 liczb doskonaªych to: 6, 28, 496, 8128, 33550336, 8 589 869 056, 137 438 691 328. Pierwsze 4 liczby doskonaªe policzyª ju» Euklides. Kilka nast pnych Euler. Potem ju» byª potrzebny komputer. Nie wiadomo czy liczb parzystych doskonaªych jest nieskonczenie wiele ani te» czy istnieje cho by jedna nieparzysta liczba doskonaªa. Wi cej informacji na temat liczenia podziaªów mo»na znale» w: http://www.math.psu.edu/vstein/alg/antheory/preprint/andrews/chapter.pdf http://www.rowan.edu/colleges/csm/departments/math/facultysta/osler/ 89%20Surprising%20Connection%20Between%20Partitions%20and%20Divisors.pdf.pdf http://hkumath.hku.hk/ mks/eulerheuristicreasoning.pdf