Rozkład Pareto jest rozkładem prawdopodobieństwa, który często pojawia się w przyrodzie. Ma wiele specjalnych właściwości, takich jak nieskończona średnia. W tym wyzwaniu wypiszesz liczbę próbkowaną z tej dystrybucji.
Dystrybucja Pareto jest zdefiniowana jako większa lub równa xz prawdopodobieństwem 1/x, dla wszystkich xwiększa lub równa 1.
Dlatego liczba próbkowana z tego rozkładu jest większa lub równa 1 z prawdopodobieństwem 1, większa lub równa 2 z prawdopodobieństwem dokładnie 1/2, większa lub równa 3 z prawdopodobieństwem dokładnie 1/3, większa lub równa 11.4 z prawdopodobieństwem dokładnie 1 / 11.4 i tak dalej.
Ponieważ próbujesz tego rozkładu, twój program lub funkcja nie będzie pobierać danych wejściowych i generować losową liczbę z powyższymi prawdopodobieństwami. Jeśli jednak twój program nie pasuje idealnie do powyższych prawdopodobieństw ze względu na wrażenie zmiennoprzecinkowe, to jest OK. Więcej szczegółów znajdziesz u dołu wyzwania.
(Mówiąc dokładniej, nazywa się to rozkładem Pareto z alfa 1 i dolną granicą 1)
Oto 10 przykładów z tej dystrybucji:
1.1540029602790338
52.86156818209856
3.003306506971116
1.4875532217142287
1.3604286212876546
57.5263129600285
1.3139866916055676
20.25125817471419
2.8105749663695208
1.1528212409680156
Zauważ, że 5 z nich jest poniżej 2, a 5 powyżej 2. Ponieważ jest to średni wynik, mógł on być oczywiście wyższy lub niższy.
Twoja odpowiedź musi być poprawna do granic typu zmiennoprzecinkowego, typu liczb rzeczywistych lub czegokolwiek innego, ale musisz być w stanie przedstawić liczby z dokładnością co najmniej 3 cyfr dziesiętnych i reprezentować liczby do 1 000 000 . Jeśli nie masz pewności, czy coś jest w porządku, zapytaj.
To jest kod golfowy.
Szczegóły dotyczące niedokładności:
Dla każdego zakresu
[a, b], gdzie1 <= a < bjest idealne prawdopodobieństwo, że próbka spadnie w tym zakresie1/a - 1/b. Prawdopodobieństwo, że program produkuje wiele w tym zakresie musi być z0.001o1/a - 1/b. JeśliXjest to wynik twojego programu, jest to wymagane|P(a <= X <= b) - (1/a - 1/b)| < 0.001.Zauważ, że stosując powyższą regułę
a=1ibodpowiednio dużą, twój program musi wypisać liczbę większą lub równą 1 z prawdopodobieństwem co najmniej 0,999. Resztę czasu może to spowodować awarię, wyjścieInfinitylub cokolwiek innego.
Jestem całkiem pewien, że istniejące formularze 1/1-xlub 1/x, gdzie xjest losowy zmiennoprzecinkowy w [0, 1)lub (0, 1)lub [0, 1], wszystkie spełniają ten wymóg.
