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
-
Modifiera programmet så att #100# slumptal testas. Notera fördelningen mellan udda och jämna tal.
-
Modifiera programmet så att #1\,000# slumptal testas, sedan #10\,000#.
-
Hur många slumptal är det rimligt att testa, för att avgöra om datorn fördelar jämnt? Diskutera.
|