Do rozwiązań dołączone są pliki o rozszerzeniu .wls — są to pliki zawierające skrypty napisane w WolframScript i realizują praktyczną część danego zadania.
Uruchomienie na Linuxie (z zainstalowanym Wolfram Mathematica i WolframScript): ./ex-‹numer zadania›.wls.
Zadanie 1.
Ile jest permutacji zbioru 30-elementowego, składających się z cykli długości co najwyżej 5?
Podobne zadanie do zadania 2. z listy 4. z ćwiczeń — tym razem jednak ograniczamy długość cykli: P′′=SET(CYC≤5(Z)) wówczas mamy EGF: P′′(z)=exp(n=1∑5nzn)
Opisując odpowiednie BGF znaleźć wariancję liczby liter a w losowym słowie nad alfabetem {a,b,c} długości n.
Mówimy tutaj o BGF, czyli o funkcjach generujących dwóch zmiennych: A(z,u)=n,k∑an,kznuk.
Żeby móc określić taką funkcję, musimy oczywiście określić an,k.
Idea: mówimy tutaj o ciągach (sekwencjach) liter {a,b,c}. Chcemy w jakiś sposób oznaczyć litery a jako specjalne, jako że chcemy policzyć w pewnym sensie, jaka jest szansa na natrafienie na tę literkę.
Takich słów jest (kn)⋅1k⋅2n−k bo za każdym razem wybieramy k liter a oraz n−k liter b lub c — co za tym idzie an,k=(kn)⋅2n−k.
Wówczas A(z,u)=n,k∑(kn)⋅zn⋅2n−k⋅uk, a po przekształceniu: A(z,u)=n≥0∑znk≥0∑(kn)uk2n−k a ze znanej równości ∑k=0n(kn)akbn−k=(a+b)n mamy: A(z,u)=n≥0∑zn(u+2)n.
Oczywiście niniejsza funkcja generująca idzie w parze z klasą kombinatoryczną A=({a,b,c},∣⋅∣,χ) gdzie ∣⋅∣ to po prostu funkcja długości słowa, a χ to funkcja określająca liczbę literek a w danym słowie — czyli oznaczamy literkę a jako specjalną.
Żeby obliczyć wariancję, musimy uzyskać wartość oczekiwaną oraz drugi moment zmiennej losowej χ.
Mamy: E(χ)E(χ2)=[zn]A(z,1)[zn]dudA(z,u)∣∣∣u=1=[zn]A(z,1)[zn]du2d2A(z,u)∣∣∣u=1+[zn]A(z,1)[zn]dudA(z,u)∣∣∣u=1 co daje nam: Var(χ)=E(χ2)−(E(χ))2
Pozostaje policzyć A(z,1): A(z,1)=n≥0∑zn(u+2)n=n≥0∑znsuper!3n.
Podać wariancję liczby cykli długości 3 w permutacji o 30 elementach.
Tak jak w zadaniu poprzednim oznaczamy wszystkie cykle długości 3 jako specjalne.
Wówczas mamy klasę C=SET⎝⎛CYC=3(Z)+oznaczone przy pomocy χCYC=3(Z)⎠⎞ z funkcją generującą C(z,u)=exp(n≥1∑(nzn)−3z3+3uz3) gdzie właśnie to u odznacza nam te cykle długości 3, czyli nasza funkcja χ dla cykli długości 3 zwraca 1, kiedy dla pozostałych 0.
Tak jak w poprzednim zadaniu potrzebujemy jeszcze C(z,1): C(z,1)=exp(n≥1∑(nzn)−3z3+31⋅z3)=exp(n≥1∑(nzn))=exp(ln1−z1)==1−z1=n≥0∑zn
Znowu, liczymy tak jak w poprzednim zadaniu wariancję: Var(χ)=E(χ2)−(E(χ))2.
Wyniki: E(χ)Var(χ)={031n≤2n>2=⎩⎪⎪⎨⎪⎪⎧09231n≤2n∈[3;5]n>5 czyli dla n=30 wariancja przyjmuje wartość 31.