Logga in för att kunna spara vad du har gjort.
<< Föregående
Hem
VARNING! Fönstret är för smalt för att använda pythonlabbet.se fullt ut. Använd en enhet med tangentbord!

Slumptal

I det här avsnittet kommer du att lära dig att

Hur skapar en dator slumptal?

När det gäller slumptal måste vi skilja på äkta slumptal och pseudoslumptal.

Enligt fysikens lagar finns det äkta slumptal i naturen och de går att mäta. För vissa avancerade applikationer, till exempel banksäkerhet, behövs slumptal som är omöjliga att gissa sig till. Det finns dyr hårdvara som säger sig skapa äkta slumptal. Äkta slumptal är dock omöjliga att skapa i en vanlig dator.

I en vanlig dator skapas slumptal genom en matematisk formel. För att den inte ska ge samma talföljd varje gång används ett frö (engelska: seed). Fröet brukar tas från systemtiden, alltså vad klockan är på datorn när slumpgeneratorn startas. Dessa slumptal kallas pseudoslumptal, de inte helt äkta slumptal men tillräckligt bra för de allra flesta användningsområdena.

Slumptalsgeneratorn i Python

I modulen random (svenska: slump) finns ett antal funktioner för att skapa slumptal. Vi kommer använda oss av funktionen randint. Den här funktionen skapar slumpmässiga heltal i ett angivet intervall. Om du skriver randint(1,6) så skapas ett slumptal, som minst ett och som störst sex.

Exempel

Hur funktionen randint används. Testa att köra programmet flera gånger.

from random import randint # importera funktionen randint från random
slumptal = randint(1,6) # skapa ett slumptal 1-6

Logga in eller skapa konto för att spara dina framsteg och din kod.

Vad gör koden?

Läs koden nedan och försök lista ut vad programmet skriver ut. Kör programmet efter du svarat och se om du fick rätt.

-- Programmets utskrifter --

Fråga: Vad kommer programmet ovan att skriva ut?

Ett tal som är minst 0 och störst 101
Ett tal som är minst: 1 och störst 100

Logga in eller skapa konto för att spara dina framsteg och din kod.

Ändra i koden

Skapa en variabel slumptal som får ett nytt slumpmässigt värde 1-3 för varje ny loop. Tanken med programmet är att skapa 1000 slumptal med värde 1-3 och sedan skriva ut hur många vi fick av varje.

-- Programmets utskrifter --

Logga in eller skapa konto för att spara dina framsteg och din kod.

Skapa: Summan av två tärningskast

Skriv kod som skriver ut summan av två tärningskast med en vanlig tärning (skriv endast ut summan).

-- Programmets utskrifter --

Slumptal mellan 0 och 1

Det finns andra funktioner i modulen random och en av dem heter just random. Funktionen har alltså samma namn som modulen. Funktionen random skapar slumptal av typen float mellan 0 och 1. Det kan vara till exempel vara användbart i samband med sannolikheter.

Exempel

Det är ca 21% chans att vinna något på en Triss-lott. Koden slumpar ett värde mellan 0 och 1 och simulerar om du vann eller inte på en lott.

Fundera på: spelar det någon större roll om vi använder p < 0.21 eller p <= 0.21?

from random import random
p = random()
if p < 0.21:
  print('Du vann något!')
else:
  print('Ingen vinst.')
Status
Du har inte gjort klart någon uppgift än (0 st).