CoCalc Public FilesDWRP częstościowa interpretacja prawdopodobieństwa.sagewsOpen with one click!
Author: Piotr Śniady
Views : 29
Compute Environment: Ubuntu 18.04 (Deprecated)
#### aby używać tego programu musisz zrobić jedną z dwóch rzeczy: #### a) zainstalować Sage lokalnie na komputerze (Linux, Windows, Mac OSX) ---> www.sagemath.org #### b) lub utworzyć konto w chmurze ---> cloud.sagemath.com #### #### miłej zabawy! #### ważna wskazówka: Sage to Python na sterydach, #### podręcznik programowania do Pythona może być nieocenioną pomocą ##### rzut monetą. ##### z prawdopodobieństwem 1/2 ta funkcja daje wynik 0, ##### z prawdopodobieństwem 1/2 ta funkcja daje wynik 1. def two_point(): return ZZ.random_element(0,2) #### informacja na przyszlosc!!! #### w Sage generowanie liczb losowych może być prostsze, niż w Pythonie ### ZZ.random_element(a,b) generuje #### losową liczbę całkowitą z przedziału *jednostronnie domkniętego* [a,b)
# przykładowe rzuty "monetą" [ two_point() for _ in range(5)]
[0, 1, 1, 1, 1]
#### generujemy jeden raz dużo rzutów monetą; #### wszystkie wykresy (z wyjątkiem ostatniego) będą się opierać na tych danych dlugosc=100000; random_numbers=[ two_point() for _ in range(dlugosc)]
probability=0.5 # scale="linear" or "semilogx" # będziemy używać osi odciętych albo ze skalą liniową albo ze skalą logarytmiczną # pierwszy wykres przedstawia kumulatywne sumy; # drugi wykres przedstawia "kumulatywne" średnie; def mean_plot(n,ymin=None,ymax=None,scale='semilogx',marker='o'): sum=0 pointsMean=[] pointsSum=[] for m in (1..n): sum+=random_numbers[m] pointsMean.append([m, sum /m]) pointsSum.append([m,sum]) L1=line(pointsMean,scale=scale,marker=marker)+line([[1,probability],[n,probability]], rgbcolor=(0.5,0.5,0.5),scale=scale) L1.set_axes_range(ymin=ymin,ymax=ymax) L2=line(pointsSum,scale=scale,marker=marker)+line([[0,0],[n,probability*n]],rgbcolor=(0.5,0.5,0.5)) return [L1,L2]
mean_plot(50,ymin=0,ymax=1,scale='linear',marker="o")[1]
mean_plot(250,ymin=0,ymax=1,scale='linear',marker="")[1]
mean_plot(50,ymin=0,ymax=1,scale='linear')[0]
mean_plot(250,ymin=0,ymax=1,scale='linear',marker="")[0]
mean_plot(dlugosc-1,ymin=0,ymax=1,scale='semilogx',marker='')[0]
def lots_of_plots(n,m,ymin=None,ymax=None,scale='semilogx',marker='o'): L1=line([[1,probability],[n,probability]], rgbcolor=(0.5,0.5,0.5),scale=scale) for iteration in range(m): sum=0 pointsMean=[] pointsSum=[] for m in (1..n): sum+=two_point() pointsMean.append([m, sum /m]) pointsSum.append([m,sum]) L1=L1+line(pointsMean,scale=scale,marker=marker,hue=iteration*golden_ratio) L1.set_axes_range(ymin=ymin,ymax=ymax) return L1 lots_of_plots(100000,10,ymin=0,ymax=1,marker='',scale='semilogx')