1 svar
248 visningar
belindavedlugaite 3
Postad: 6 apr 2022 10:10 Redigerad: 8 apr 2022 10:28

Python, listor, tärningar

1. Implementera funktionen simulate_dice_sum_hist i samma fil som simulerar summan av ett antal tärningar och returnerar resultatet som ett histogram. Funktionen ska ha
två parametrar, antalet tärningar och antalet försök, samt returnera en lista.
När man skapar en lista är den tom, så det första man behöver göra i funktionen är att
skapa en lista med ett element för varje möjligt resultat. Det vill säga, man behöver skapa
en lista bestående av 6d + 1 element, där d är antalet tärningar. Initialt ska alla element
ha värdet 0, då inga försök har genomförts än. Därefter ska man simulera tärningskast
och räkna hur ofta olika summor förekommer. Eftersom den här uppgiften handlar om
en effektivare implementation, så ska vi inte använda funktionen simulate_dice_sum i
simulate_dice_sum_hist. Däremot ska man alltid fundera på vilka funktioner som finns
tillgängliga.
Kommentera ut anropet till den tidigare funktionen och skapandet av det tidigare
diagrammet, då vi inte vill att den koden ska exekvera nu.

2. Ändra därefter på funktionen simulate_dice_sum_hist så att värdena normaliseras innan
de returneras, dvs, att varje element i listan divideras med antalet försök. 

3. gör ett diagram

 

såhär långt har jag kommit på min kod:

from msilib import sequence
import random
from re import T
import matplotlib.pyplot as plt

def roll_dice_sum(r):
    sum=0
    for x in range(r):
        x=random.randint(1,6)
        sum+=x
        print(sum)
       
       
def simulate_dice_sum(t,f):
     list=[]
     for x in range(f):
         sum=0
         list.append(x)
         for r in range(t):
            tal=random.randint(1,6)
            sum += tal
            list[x] = sum

def simulate_dice_sum_hist(d,t):
    list=[]
    for x in range(6*d+1):
        list.append(0)

    for x in range(t):
        sum=roll_dice_sum(d)
        list[sum]+=1
   
    for i in range(6*d+1):
        list[i]=list[i]/t
    return list  

print(simulate_dice_sum_hist(2,100000)/sum )


Tråd flyttad från >Teknik & Bygg > Universitet till >Programmering > Python. /Smutstvätt, moderator 

Laguna Online 28597
Postad: 6 apr 2022 16:56

Det var mycket att läsa. Jag hjälper gärna till men jag har inte läst så noga än. Gör din kod fel, eller vet du inte hur man gör nästa steg, eller är uppgiften oklar?

Svara Avbryt
Close