Forsøk med mange terninger - normalfordeling#

Ved første kjøring må det installeres noen biblioteker. Det tar litt tid, så vær tålmodig

! pip install numpy
! pip install matplotlib
Requirement already satisfied: numpy in c:\users\sigur\anaconda3\lib\site-packages (1.24.3)
WARNING: There was an error checking the latest version of pip.
Requirement already satisfied: matplotlib in c:\users\sigur\anaconda3\lib\site-packages (3.7.2)
Requirement already satisfied: contourpy>=1.0.1 in c:\users\sigur\anaconda3\lib\site-packages (from matplotlib) (1.0.5)
Requirement already satisfied: cycler>=0.10 in c:\users\sigur\anaconda3\lib\site-packages (from matplotlib) (0.11.0)
Requirement already satisfied: fonttools>=4.22.0 in c:\users\sigur\anaconda3\lib\site-packages (from matplotlib) (4.25.0)
Requirement already satisfied: kiwisolver>=1.0.1 in c:\users\sigur\anaconda3\lib\site-packages (from matplotlib) (1.4.4)
Requirement already satisfied: numpy>=1.20 in c:\users\sigur\anaconda3\lib\site-packages (from matplotlib) (1.24.3)
Requirement already satisfied: packaging>=20.0 in c:\users\sigur\anaconda3\lib\site-packages (from matplotlib) (23.1)
Requirement already satisfied: pillow>=6.2.0 in c:\users\sigur\anaconda3\lib\site-packages (from matplotlib) (10.0.1)
Requirement already satisfied: pyparsing<3.1,>=2.3.1 in c:\users\sigur\anaconda3\lib\site-packages (from matplotlib) (3.0.9)
Requirement already satisfied: python-dateutil>=2.7 in c:\users\sigur\anaconda3\lib\site-packages (from matplotlib) (2.8.2)
Requirement already satisfied: importlib-resources>=3.2.0 in c:\users\sigur\anaconda3\lib\site-packages (from matplotlib) (5.2.0)
Requirement already satisfied: zipp>=3.1.0 in c:\users\sigur\anaconda3\lib\site-packages (from importlib-resources>=3.2.0->matplotlib) (3.11.0)
Requirement already satisfied: six>=1.5 in c:\users\sigur\anaconda3\lib\site-packages (from python-dateutil>=2.7->matplotlib) (1.16.0)
WARNING: There was an error checking the latest version of pip.
# -*- coding: utf-8 -*-
"""
Created on Mon Feb 28 00:53:24 2022

@author: sigur
"""

import random
import numpy as np
import matplotlib.pyplot as plt

# setter opp terning og antall kast. Endre på disse parameterene!
sider = 6
antall_terninger = 5
antall_forsok = 100000

# Regner ut antall mulige utfall, fra minste mulige verdi til største mulige verdi)
antall_mulige_utfall = antall_terninger * sider - (antall_terninger-1)

# Tabell for å registrere antall forekomster av hvert forsøk
fordeling = np.zeros(antall_mulige_utfall)

# kaster terningen, husker sum og antall forekomster
for i in range (antall_forsok):
    sum=0
    
    for j in range(antall_terninger):
        sum += random.randint(1, sider)
    
    fordeling[sum-antall_terninger]+=1

print("Antall terninger: " + str(antall_terninger))
print("Antall forsøk: " + str(antall_forsok))
    
# Lager et søylediagram over relativ frekvens for alle forsøkene
relativ_frekvens = fordeling/antall_forsok
akse = np.linspace(antall_terninger, antall_mulige_utfall+antall_terninger-1, antall_mulige_utfall)

fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
ax.bar(akse,relativ_frekvens)
plt.title("Relativ frekvens for summen av " + str(antall_terninger) + " terninger, ved " + str(antall_forsok) + " forsøk" )
plt.xlabel("sum")
plt.ylabel("relativ frekvens")
plt.show()
Antall terninger: 5
Antall forsøk: 100000
_images/1dfdbe54a26a71f5d83aca050d79a0b7da1ac611381170d8fe00078a46e9844c.png