Mając do dyspozycji procedurę BIASED_SORT() która zwraca liczbę 1 z prawdopodobieństwem p, a 0 z prawdopodobieństwem 1-p (nie znamy tych wartości) napisać funkcję SORT() która zwraca obie wartości z równym prawdopodobieństwem.
Jak sie do tego zabrać? Kombinowałem z kilkoma losowaniami i parzystością sumy wyników, ale nie wychodzi prawidłowo.
Cormen - algorytm sortujący
-
- Użytkownik
- Posty: 80
- Rejestracja: 14 paź 2007, o 11:12
- Płeć: Mężczyzna
- Lokalizacja: Inf@EAIiE@AGH@KRK
- Podziękował: 1 raz
- Pomógł: 7 razy
Cormen - algorytm sortujący
Może na przykład coś takiego rekurencyjnego:
Wykonujemy dwa razy BIASED_SORT() i zapisujemy wyniki. Jeśli pierwszy wynik to 1, a drugi 0 - zwracamy 1. Jeżeli pierwszy wynik to 0, a drugi 1 - zwracamy 0. Jeżeli oba wyniki będą równe 0 lub oba będą równe 1 - rekurencja.
Taki algorytm teoretycznie może działać w nieskończoność, ale w zadaniu pytają o oczekiwany czas działania względem \(\displaystyle{ p}\), więc podejrzewam, że być może takie rozwiązanie jest wystarczające.
BTW. Oczekiwana liczba wywołań BIASED_SORT() wyszła mi \(\displaystyle{ {1 \over p-p^2}}\), o ile się nie pomyliłem.
PS. Czemu niby nazywa się to u Ciebie algorytmem sortującym?
Wykonujemy dwa razy BIASED_SORT() i zapisujemy wyniki. Jeśli pierwszy wynik to 1, a drugi 0 - zwracamy 1. Jeżeli pierwszy wynik to 0, a drugi 1 - zwracamy 0. Jeżeli oba wyniki będą równe 0 lub oba będą równe 1 - rekurencja.
Taki algorytm teoretycznie może działać w nieskończoność, ale w zadaniu pytają o oczekiwany czas działania względem \(\displaystyle{ p}\), więc podejrzewam, że być może takie rozwiązanie jest wystarczające.
BTW. Oczekiwana liczba wywołań BIASED_SORT() wyszła mi \(\displaystyle{ {1 \over p-p^2}}\), o ile się nie pomyliłem.
Kod: Zaznacz cały
SORT()
1 x=BIASED_SORT()
2 y=BIASED_SORT()
3 if x=y
4 return SORT()
5 return x
-
- Użytkownik
- Posty: 2000
- Rejestracja: 19 lut 2008, o 17:35
- Płeć: Mężczyzna
- Lokalizacja: Stare Pole/Kraków
- Podziękował: 60 razy
- Pomógł: 202 razy
Cormen - algorytm sortujący
faktycznie, bez sensu (zbyt często ostatnio słyszałem słowo ,,sortowanie" )
tak właśnie to losowanie w nieskończoność mi nie pasowało, jak to rozkminiałem
tak właśnie to losowanie w nieskończoność mi nie pasowało, jak to rozkminiałem