Jak matematyka pomaga w wyszukiwanie wzorca Artur Jeż 28 września 2011 Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 1 / 18
Wiek nauki Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 2 / 18
Wiek nauki projekty nuklearne rozwój fizyki Internet digitalizacja danych poznanie genomu rozwój lotnictwa kryptografia Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 2 / 18
Wiek nauki projekty nuklearne rozwój fizyki Internet digitalizacja danych poznanie genomu rozwój lotnictwa kryptografia kryzys finansowy 2007? Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 2 / 18
Wiek nauki projekty nuklearne rozwój fizyki Internet digitalizacja danych poznanie genomu rozwój lotnictwa kryptografia kryzys finansowy 2007? We wszystkich matematyka i informatyka by ly obecne. Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 2 / 18
Wiek nauki projekty nuklearne rozwój fizyki Internet digitalizacja danych poznanie genomu rozwój lotnictwa kryptografia kryzys finansowy 2007? We wszystkich matematyka i informatyka by ly obecne. jako podstawa lub ważne narz edzie w wi ekszości egalitarne Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 2 / 18
A Wy? Cz eść z Was pozostanie w nauce może b edziecie uczestniczyć w równie wielkim przedsi ewzi eciu! Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 3 / 18
A Wy? Cz eść z Was pozostanie w nauce może b edziecie uczestniczyć w równie wielkim przedsi ewzi eciu! Wiekszość chce po studiach mieć interesujac a i dobrze p latna prace Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 3 / 18
A Wy? Cz eść z Was pozostanie w nauce może b edziecie uczestniczyć w równie wielkim przedsi ewzi eciu! Wiekszość chce po studiach mieć interesujac a i dobrze p latna prace Badźmy szczerzy, pewnie niewiele osób bedzie uczestniczyć w czymś wielkim Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 3 / 18
A Wy? Cz eść z Was pozostanie w nauce może b edziecie uczestniczyć w równie wielkim przedsi ewzi eciu! Wiekszość chce po studiach mieć interesujac a i dobrze p latna prace Badźmy szczerzy, pewnie niewiele osób bedzie uczestniczyć w czymś wielkim Zmiany i zastosowania sa wszechobecne. Każdy może sie z nimi zetknać. Nawet w rzeczach pozornie prostych jest naprawde dużo nauki. Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 3 / 18
Przyk lad: wyszukiwanie wzorca Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 4 / 18
Przyk lad: wyszukiwanie wzorca Czy zastanawialiście si e kiedyś co tak naprawd e dzieje si e po naciśni eciu Ctrl+F w Waszym ulubionym edytorze tekstu? Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 4 / 18
Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 5 / 18
Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 6 / 18
Wyszukiwanie wzorca Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 7 / 18
Wyszukiwanie wzorca Zanim rozwiażemy, wypada loby dok ladnie zdefiniować. Wyszukiwanie wzorca Dane: tekst t[1.. n] i wzorzec p[1.. m]. Wynik: Czy wzorzec wyst epuje w tekście? Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 7 / 18
Wyszukiwanie wzorca Zanim rozwiażemy, wypada loby dok ladnie zdefiniować. Wyszukiwanie wzorca Dane: tekst t[1.. n] i wzorzec p[1.. m]. Wynik: Czy wzorzec wyst epuje w tekście? Pozycja pierwszego wystapienia Pozycje wystapień. Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 7 / 18
Pierwszy pomys l przyk ladamy wzorzec w każdym możliwym miejscu; sprawdzamy litera po literze, czy si e zgadza. Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 8 / 18
Pierwszy pomys l (niekoniecznie najlepszy) przyk ladamy wzorzec w każdym możliwym miejscu; sprawdzamy litera po literze, czy si e zgadza. Może si e zdarzyć, że dla każdego przy lożenia sprawdzamy wi ekszość liter. Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 8 / 18
Pierwszy pomys l (niekoniecznie najlepszy) przyk ladamy wzorzec w każdym możliwym miejscu; sprawdzamy litera po literze, czy si e zgadza. Może si e zdarzyć, że dla każdego przy lożenia sprawdzamy wi ekszość liter. przy lożeń: n m + 1 sprawdzań: m/c Czas dzia lania takiego algorytmu: Θ(nm). Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 8 / 18
Pierwszy pomys l (niekoniecznie najlepszy) przyk ladamy wzorzec w każdym możliwym miejscu; sprawdzamy litera po literze, czy si e zgadza. Może si e zdarzyć, że dla każdego przy lożenia sprawdzamy wi ekszość liter. przy lożeń: n m + 1 sprawdzań: m/c Czas dzia lania takiego algorytmu: Θ(nm). Jeśli n = 10 8 i m = 10 4, chwil e nam to zajmie*... * 1 chwila = 60 mgnień oka = 17 minut Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 8 / 18
Drugi pomys l Przyk ladamy wzorzec w każdym możliwym miejscu. Sprytnie odrzucamy pozycje, które na pierwszy rzut oka nie rokuja nadziei na sukces. Sprawdzamy litera po literze. Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 9 / 18
Drugi pomys l (troch e lepszy) Przyk ladamy wzorzec w każdym możliwym miejscu. Sprytnie odrzucamy pozycje, które na pierwszy rzut oka nie rokuja nadziei na sukces. Sprawdzamy litera po literze. Co to znaczy sprytnie? aaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaabaaaaa Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 9 / 18
Drugi pomys l (troch e lepszy) Przyk ladamy wzorzec w każdym możliwym miejscu. Sprytnie odrzucamy pozycje, które na pierwszy rzut oka nie rokuja nadziei na sukces. Sprawdzamy litera po literze. Co to znaczy sprytnie? Myślmy o wzorcu jako o liczbie. aaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaabaaaaa Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 9 / 18
Drugi pomys l (troch e lepszy) Przyk ladamy wzorzec w każdym możliwym miejscu. Sprytnie odrzucamy pozycje, które na pierwszy rzut oka nie rokuja nadziei na sukces. Sprawdzamy litera po literze. Co to znaczy sprytnie? Myślmy o wzorcu jako o liczbie. 00000000000000000000000000000 00000100000 Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 9 / 18
Drugi pomys l (troch e lepszy) Przyk ladamy wzorzec w każdym możliwym miejscu. Sprytnie odrzucamy pozycje, które na pierwszy rzut oka nie rokuja nadziei na sukces. Sprawdzamy litera po literze. Co to znaczy sprytnie? Myślmy o wzorcu jako o liczbie. 00000000000000000000000000000 00000100000 Chcemy sprawdzić czy zielona liczba jest taka sama jak czerwona. Obydwie moga być bardzo d lugie! Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 9 / 18
Drugi pomys l (troch e lepszy) Przyk ladamy wzorzec w każdym możliwym miejscu. Sprytnie odrzucamy pozycje, które na pierwszy rzut oka nie rokuja nadziei na sukces. Sprawdzamy litera po literze. Co to znaczy sprytnie? Myślmy o wzorcu jako o liczbie. 00000000000000000000000000000 00000100000 Chcemy sprawdzić czy zielona liczba jest taka sama jak czerwona. Obydwie moga być bardzo d lugie! Sprawdzimy, czy daja takie same reszty modulo p Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 9 / 18
Drugi pomys l (troch e lepszy) Przyk ladamy wzorzec w każdym możliwym miejscu. Sprytnie odrzucamy pozycje, które na pierwszy rzut oka nie rokuja nadziei na sukces. Sprawdzamy litera po literze. Co to znaczy sprytnie? Myślmy o wzorcu jako o liczbie. 00000000000000000000000000000 00000100000 Chcemy sprawdzić czy zielona liczba jest taka sama jak czerwona. Obydwie moga być bardzo d lugie! Sprawdzimy, czy daja takie same reszty modulo p = 7. 00000100000 = 5 (mod 7) 00000000000 = 0 (mod 7) Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 9 / 18
Jeśli liczby sa różne modulo 7 to oczywiście nie moga być takie same! Jeśli zaś sa równe... sprawdzamy je cyfra po cyfrze. Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 10 / 18
Jeśli liczby sa różne modulo 7 to oczywiście nie moga być takie same! Jeśli zaś sa równe... sprawdzamy je cyfra po cyfrze. Dlaczego to ma sens? Zamiast p = 7 wybierzmy p = 10 9 + 7. Szansa pomy lki jest ma la. Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 10 / 18
Jeśli liczby sa różne modulo 7 to oczywiście nie moga być takie same! Jeśli zaś sa równe... sprawdzamy je cyfra po cyfrze. Dlaczego to ma sens? Zamiast p = 7 wybierzmy p = 10 9 + 7. Szansa pomy lki jest ma la. Bardziej formalnie Wybieramy losowe p. A z pewnych dodatkowych powodów warto, żeby by la to liczba pierwsza. Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 10 / 18
Jeśli liczby sa różne modulo 7 to oczywiście nie moga być takie same! Jeśli zaś sa równe... sprawdzamy je cyfra po cyfrze. Dlaczego to ma sens? Zamiast p = 7 wybierzmy p = 10 9 + 7. Szansa pomy lki jest ma la. Bardziej formalnie Wybieramy losowe p. A z pewnych dodatkowych powodów warto, żeby by la to liczba pierwsza. Dlaczego pierwsze? p = 10 n nie jest dobrym pomys lem; jak d lużej pomyśleć, to z lożone liczby nie sa dobre. Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 10 / 18
Dla każdego przy lożenia liczymy reszt e z dzielenia przez p, co nie jest prostsze. Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 11 / 18
Dla każdego przy lożenia liczymy reszt e z dzielenia przez p, co nie jest prostsze. A może jednak jest? Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 11 / 18
Dla każdego przy lożenia liczymy reszte z dzielenia przez p, co nie jest prostsze. A może jednak jest? 10001000011000000001000000110 Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 11 / 18
Dla każdego przy lożenia liczymy reszte z dzielenia przez p, co nie jest prostsze. A może jednak jest? 10001000011000000001000000110 Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 11 / 18
Dla każdego przy lożenia liczymy reszte z dzielenia przez p, co nie jest prostsze. A może jednak jest? 10001000011000000001000000110 11000000001 = 4 (mod 7) 10000000010 = 0 (mod 7) Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 11 / 18
Dla każdego przy lożenia liczymy reszte z dzielenia przez p, co nie jest prostsze. A może jednak jest? 10001000011000000001000000110 11000000001 = 4 (mod 7) 10000000010 = 0 (mod 7) 11000000001 Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 11 / 18
Dla każdego przy lożenia liczymy reszt e z dzielenia przez p, co nie jest prostsze. A może jednak jest? 10001000011000000001000000110 11000000001 = 4 (mod 7) 10000000010 = 0 (mod 7) 10000000000 = 4 (mod 7) 11000000001 10000000000 Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 11 / 18
Dla każdego przy lożenia liczymy reszte z dzielenia przez p, co nie jest prostsze. A może jednak jest? 10001000011000000001000000110 11000000001 = 4 (mod 7) 10000000010 = 0 (mod 7) 10000000000 = 4 (mod 7) (11000000001 10000000000) 10 Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 11 / 18
Dla każdego przy lożenia liczymy reszte z dzielenia przez p, co nie jest prostsze. A może jednak jest? 10001000011000000001000000110 11000000001 = 4 (mod 7) 10000000010 = 0 (mod 7) 10000000000 = 4 (mod 7) (11000000001 10000000000) 10 + 0 Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 11 / 18
Dla każdego przy lożenia liczymy reszte z dzielenia przez p, co nie jest prostsze. A może jednak jest? 10001000011000000001000000110 11000000001 = 4 (mod 7) 10000000010 = 0 (mod 7) 10000000000 = 4 (mod 7) 10000000010 = (11000000001 10000000000) 10 + 0 Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 11 / 18
Dla każdego przy lożenia liczymy reszte z dzielenia przez p, co nie jest prostsze. A może jednak jest? 10001000011000000001000000110 11000000001 = 4 (mod 7) 10000000010 = 0 (mod 7) 10000000000 = 4 (mod 7) 10000000010 = (11000000001 10000000000) 10 + 0 (mod 7) Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 11 / 18
Dla każdego przy lożenia liczymy reszte z dzielenia przez p, co nie jest prostsze. A może jednak jest? 10001000011000000001000000110 11000000001 = 4 (mod 7) 10000000010 = 0 (mod 7) 10000000000 = 4 (mod 7) 10000000010 = (11000000001 10000000000) 10 + 0 (mod 7) Nowa reszta Można latwo wyliczyć na podstawie: starej reszty, 10 m (mod 7). Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 11 / 18
To dzia la! To podejście dzia la: jest ma la szansa, że sprawdzimy litera po literze z le wystapienie. Oczekiwany czas dzia lania (pierwsze wystapienie): Θ(m + n). Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 12 / 18
To dzia la! To podejście dzia la: jest ma la szansa, że sprawdzimy litera po literze z le wystapienie. Oczekiwany czas dzia lania (pierwsze wystapienie): Θ(m + n). Problemy Sformu lowania wybieramy losowe i szansa jest ma la sa niepokojace. Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 12 / 18
To dzia la! To podejście dzia la: jest ma la szansa, że sprawdzimy litera po literze z le wystapienie. Oczekiwany czas dzia lania (pierwsze wystapienie): Θ(m + n). Problemy Sformu lowania wybieramy losowe i szansa jest ma la sa niepokojace. S labo dzia la dla tekstu a n i wzorca a m. Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 12 / 18
To dzia la! To podejście dzia la: jest ma la szansa, że sprawdzimy litera po literze z le wystapienie. Oczekiwany czas dzia lania (pierwsze wystapienie): Θ(m + n). Problemy Sformu lowania wybieramy losowe i szansa jest ma la sa niepokojace. S labo dzia la dla tekstu a n i wzorca a m. Chcemy czegoś, co zawsze dzia la szybko! Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 12 / 18
To dzia la! To podejście dzia la: jest ma la szansa, że sprawdzimy litera po literze z le wystapienie. Oczekiwany czas dzia lania (pierwsze wystapienie): Θ(m + n). Problemy Sformu lowania wybieramy losowe i szansa jest ma la sa niepokojace. S labo dzia la dla tekstu a n i wzorca a m. Chcemy czegoś, co zawsze dzia la szybko! Twierdzenie Istnieje prosty algorytm, który znajduje pierwsze wystapienie wzorca wykonujac tylko Θ(n + m) operacji. Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 12 / 18
To dzia la! To podejście dzia la: jest ma la szansa, że sprawdzimy litera po literze z le wystapienie. Oczekiwany czas dzia lania (pierwsze wystapienie): Θ(m + n). Problemy Sformu lowania wybieramy losowe i szansa jest ma la sa niepokojace. S labo dzia la dla tekstu a n i wzorca a m. Chcemy czegoś, co zawsze dzia la szybko! Twierdzenie Istnieje prosty algorytm, który znajduje pierwsze wystapienie wzorca wykonujac tylko Θ(n + m) operacji. Dowód.... można zobaczyć na zaj eciach z Algorytmów i Struktur Danych lub Algorytmów Tekstowych (w o wiele ciekawszej wersji). Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 12 / 18
Świat nie jest taki prosty Idealny świat Rozwiazanie świetne do idealnego sferycznego świata. Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 13 / 18
Świat nie jest taki prosty Idealny świat Rozwiazanie świetne do idealnego sferycznego świata. Ile razy napisaliście nei? Ile razy nie wiedzieliście, czego dok ladnie szukacie? Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 13 / 18
Świat nie jest taki prosty Idealny świat Rozwiazanie świetne do idealnego sferycznego świata. B l edy Ile razy napisaliście nei? Ile razy nie wiedzieliście, czego dok ladnie szukacie? Czasami chcielibyśmy znaleźć nie tylko dok ladne wystapienie wzorca, ale także takie, w którym dopuszczamy troche przek lamań. Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 13 / 18
Świat nie jest taki prosty Idealny świat Rozwiazanie świetne do idealnego sferycznego świata. B l edy Ile razy napisaliście nei? Ile razy nie wiedzieliście, czego dok ladnie szukacie? Czasami chcielibyśmy znaleźć nie tylko dok ladne wystapienie wzorca, ale także takie, w którym dopuszczamy troche przek lamań. Wyszukiwanie wzorca z b l edami Dane: tekst t[1.. n] i wzorzec p[1.. m]. Wynik: dla każdego przy lożenia wzorca liczba niezgodnych znaków. Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 13 / 18
aaaaaabaabaaaaabaaaaabaaabbab aabaabaaaab 5 Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 14 / 18
aaaaaabaabaaaaabaaaaabaaabbab aabaabaaaab 2 Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 14 / 18
aaaaaabaabaaaaabaaaaabaaabbab aabaabaaaab 3 Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 14 / 18
Myślmy pozytywnie Zgodności Zamiast liczyć niezgodności, dla każdej litery osobno liczmy zgodności. aaaaabaaaaa aabaabaaaab 8 Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 15 / 18
Myślmy pozytywnie Zgodności Zamiast liczyć niezgodności, dla każdej litery osobno liczmy zgodności. Lekkie wprowadzenie Tekst i wzorzec tej samej d lugości. aaaaabaaaaa aabaabaaaab 8 Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 15 / 18
Myślmy pozytywnie Zgodności Zamiast liczyć niezgodności, dla każdej litery osobno liczmy zgodności. Lekkie wprowadzenie Tekst i wzorzec tej samej d lugości. aaaaabaaaaa aabaabaaaab 8 Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 15 / 18
Myślmy pozytywnie Zgodności Zamiast liczyć niezgodności, dla każdej litery osobno liczmy zgodności. Lekkie wprowadzenie Tekst i wzorzec tej samej d lugości. Wektory 0-1. 11111011111 11011011110 8 Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 15 / 18
Myślmy pozytywnie Zgodności Zamiast liczyć niezgodności, dla każdej litery osobno liczmy zgodności. Lekkie wprowadzenie Tekst i wzorzec tej samej d lugości. Wektory 0-1. 11111011111 11011011110 8 Ponumerujmy cyfry wektorów dla wzorca i tekstu: p 1 [1.. m], t[1.. m]. Liczymy sum e p 1 t 1 + p 2 t 2 +... + p m t m Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 15 / 18
Myślmy pozytywnie Zgodności Zamiast liczyć niezgodności, dla każdej litery osobno liczmy zgodności. Lekkie wprowadzenie Tekst i wzorzec tej samej d lugości. Wektory 0-1. 11111011111 11011011110 8 Ponumerujmy cyfry wektorów dla wzorca i tekstu: p 1 [1.. m], t[1.. m]. Liczymy sum e p 1 t 1 + p 2 t 2 +... + p m t m ponumerujmy wzorzec odwrotnie: p[m.. 1] teraz liczymy: t 1 p m + t 2 p m 1 +... + t m p 1 Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 15 / 18
Myślmy pozytywnie Zgodności Zamiast liczyć niezgodności, dla każdej litery osobno liczmy zgodności. Lekkie wprowadzenie Tekst i wzorzec tej samej d lugości. Wektory 0-1. 11111011111 11011011110 8 Ponumerujmy cyfry wektorów dla wzorca i tekstu: p 1 [1.. m], t[1.. m]. Liczymy sum e p 1 t 1 + p 2 t 2 +... + p m t m ponumerujmy wzorzec odwrotnie: p[m.. 1] teraz liczymy: t 1 p m + t 2 p m 1 +... + t m p 1 wspó lczynnik wielomianu (przy x m+1 ) Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 15 / 18
Traktujemy obydwa wektory jako wielomiany: P a (x), T a (x). T ma wspó lczynnik 1 przy x k k-ta litera t to a. P ma wspó lczynnik 1 przy x k m k-ta litera p to a. Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 16 / 18
Traktujemy obydwa wektory jako wielomiany: P a (x), T a (x). T ma wspó lczynnik 1 przy x k k-ta litera t to a. P ma wspó lczynnik 1 przy x k m k-ta litera p to a. Mnożymy Mnożymy wielomiany P a (x) i T a (x). Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 16 / 18
Traktujemy obydwa wektory jako wielomiany: P a (x), T a (x). T ma wspó lczynnik 1 przy x k k-ta litera t to a. P ma wspó lczynnik 1 przy x k m k-ta litera p to a. Mnożymy Mnożymy wielomiany P a (x) i T a (x). Przypomnienie: tekst i wzorzec tej samej d lugości t 1 p m + t 2 p m 1 + + t m p 1, wspó lczynnik przy x m+1. Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 16 / 18
Traktujemy obydwa wektory jako wielomiany: P a (x), T a (x). T ma wspó lczynnik 1 przy x k k-ta litera t to a. P ma wspó lczynnik 1 przy x k m k-ta litera p to a. Mnożymy Mnożymy wielomiany P a (x) i T a (x). Przypomnienie: tekst i wzorzec tej samej d lugości t 1 p m + t 2 p m 1 + + t m p 1, wspó lczynnik przy x m+1. Ogólnie Wspó lczynnik przy x m+1+k to dok ladnie liczba zgodności przy przy lożeniu wzorca tak, że zaczyna si e na k-tej literze tekstu. Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 16 / 18
Traktujemy obydwa wektory jako wielomiany: P a (x), T a (x). T ma wspó lczynnik 1 przy x k k-ta litera t to a. P ma wspó lczynnik 1 przy x k m k-ta litera p to a. Mnożymy Mnożymy wielomiany P a (x) i T a (x). Przypomnienie: tekst i wzorzec tej samej d lugości t 1 p m + t 2 p m 1 + + t m p 1, wspó lczynnik przy x m+1. Ogólnie Wspó lczynnik przy x m+1+k to dok ladnie liczba zgodności przy przy lożeniu wzorca tak, że zaczyna si e na k-tej literze tekstu. Zsumować po różnych literach. Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 16 / 18
No dobrze, ale jak mnożyć wielomiany? Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 17 / 18
No dobrze, ale jak mnożyć wielomiany? Transformata Fouriera Wielomiany można mnożyć korzystajac z transformaty Fouriera. Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 17 / 18
No dobrze, ale jak mnożyć wielomiany? Transformata Fouriera Wielomiany można mnożyć korzystajac z transformaty Fouriera. Ta sama, która przedstawia funkcj e jako sum e sinusów i cosinusów. Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 17 / 18
No dobrze, ale jak mnożyć wielomiany? Transformata Fouriera Wielomiany można mnożyć korzystajac z transformaty Fouriera. Ta sama, która przedstawia funkcj e jako sum e sinusów i cosinusów. Ale jak ja zrobić szybko? Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 17 / 18
No dobrze, ale jak mnożyć wielomiany? Transformata Fouriera Wielomiany można mnożyć korzystajac z transformaty Fouriera. Ta sama, która przedstawia funkcj e jako sum e sinusów i cosinusów. Ale jak ja zrobić szybko? 1 na ratunek! Transformat e Fouriera można policzyć szybko, jeśli liczymy wartości P a (x) i T a (x) w zespolonych pierwiastkach z 1. Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 17 / 18
Pytania? Artur Jeż Matematyka i wyszukiwanie wzorca 28 IX 2011 18 / 18