• home

    Home

  • Sök

    Sök

  • report

    Report

  • forum

    Forum

  • Fler alternativ

    Fler alternativ

  • role

    Role

  • Help

    Help

  • profile

    Profile

  • Lämna

    Lämna

1c 5. Statistik: Programmering och digitala verktyg

Teori Slumptal med Python 3

Hur bra är datorn på slumptal?

Test av ett slumptal
Med programmering kan vi få datorn att skapa slumpmässiga heltal. I Python 3 börjar vi programmet med raden

import random 

som gör att vi får tillgång till en klass som innehåller Pythons slumpfunktion random. En klass är ett "paket" där man samlat olika funktioner inom något område.

Med raden

a = random.randint(1,2)

ger vi variabeln #a# ett slumpvärde som är ett heltal mellan #1 # och #2. # Alltså #1 # eller #2. #
För att se vilket tal programmet väljer, lägger vi till en rad om utskrift. Hela programmet blir

import random
a = random.randint(1,2)
print(a)

UPPGIFTER

  1. Modifiera programkoden så att ett heltal mellan #1 # och #10 # slumpas fram och skrivs ut. Testkör programmet några gånger.

  2. Modifiera programkoden så att två tal mellan #1 # och #10 # slumpas fram och skrivs ut.

  3. Du ska välja en ny kod till ditt kodlås. Skriv ett program som slumpar fram #4# siffror mellan #0# och #9# och skriver ut dem på skärmen.

#\,#

Svar

  1. import random
    a = random.randint(1,10)
    print(a)
  2. import random
    a = random.randint(1,10)
    b = random.randint(1,10)
    print(a, b)
  3. import random
    a = random.randint(0,9)
    b = random.randint(0,9)
    c = random.randint(0,9)
    d = random.randint(0,9)
    print(a, b, c, d)

#\,#


Test av flera slumptal

Vi ska nu modifiera programmet för att testa om datorn slumpar udda och jämna tal med samma sannolikhet även nu.

Programmets första rad är import random så att vi får tillgång till slumpfunktionen.

På nästa rad i programmet definierar vi två variabler odd och even, som båda får startvärdet #0#.
odd, even = 0, 0

Vi ska låta programmet slumpa #10 # tal och räkna hur många av dem som är udda respektive jämna. Vi använder en for-loop.

I blocket som ska köras #10 # gånger låter vi först datorn ta fram ett slumptal. Sedan kontrollerar vi om talet är #1 # med hjälp av en if-sats. Är talet #1 # räknar vi upp variabeln odd, annars räknar vi upp variabeln even. Om talet inte är #1 # är det ju #2. #

for n in range(0,10):
a = random.randint(1,2)
if a == 1 : odd = odd + 1
else: even = even + 1

Vi avslutar med att låta programmet skriva ut antalet udda och jämna tal:

print( 'Udda:',odd,'Jämna:',even) 

Kör programmet några gånger och notera hur många udda och jämna tal du får. Var det lika stor sannolikhet att datorn slumpade fram ett udda tal som ett jämnt tal?

Om vi vill beräkna andelen jämna eller udda tal delar vi med antal tal. Vill vi ha andelen i procent multiplicerar vi med #100#. För de udda talen skriver vi då

100*(odd/10) och motsvarande för de jämna.

Vi lägger till en rad i programkoden för att visa den procentuella fördelningen mellan udda och jämna tal:

print('Udda %:',100*(odd/10),'Jämna %:',100*(even/10))

Provkör programmet några gånger och notera resultaten.

UPPGIFTER

  1. Modifiera programmet så att #100# slumptal testas. Notera fördelningen mellan udda och jämna tal.

  2. Modifiera programmet så att #1\,000# slumptal testas, sedan #10\,000#.

  3. Hur många slumptal är det rimligt att testa, för att avgöra om datorn fördelar jämnt? Diskutera.

#\,#

Svar

  1. import random
    odd, even = 0, 0
    for n in range(0,100):
    a = random.randint(1,2)
    if a == 1: odd = odd + 1
    else: even = even + 1
    print( 'Udda %:'
    ,100*(odd/100),
    'Jämna %:'
    ,100*(even/100))
  2. import random
    odd, even = 0, 0
    for n in range(0,10000):
    a = random.randint(1,2)
    if a == 1: odd = odd + 1
    else: even = even + 1
    print( 'Udda %:'
    ,100*(odd/10000),
    'Jämna %:'
    ,100*(even/10000))
Copyright © 2025 Liber
Lyssna
Lyssna
Lyssna
Lyssna
Lyssna
Lyssna
Lyssna
Lyssna
Lyssna
Lyssna
Lyssna
Lyssna
Lyssna
Lyssna
Lyssna
Lyssna
Lyssna
Lyssna
Lyssna
Lyssna
Lyssna
Lyssna
Lyssna
Lyssna
Lyssna