Skip to content
Snippets Groups Projects
Commit e861a584 authored by majidrouhanintnu's avatar majidrouhanintnu
Browse files

upd

parent f78104da
No related branches found
No related tags found
No related merge requests found
%% Cell type:markdown id: tags:
# Lotto
**Læringsmål:**
* Lister
* Tilfeldige tall
I denne oppgaven lage du lage en lottosimulator.
Reglene er som følger:
* Det trekkes ut 7 lottotall og 3 tilleggstall fra og med 1 til og med 34. Alle tallene som trekkes skal være unike.
* Premier deles ut basert på følgende tabell:
Premiergruppe|Premie (kr)
:---|---
7 rette |2 749 455
6 rette + 1 tilleggstall |102 110
6 rette |3 385
5 rette |95
4 rette + 1 tilleggstall |45
%% Cell type:markdown id: tags:
## Oppgave a: frivillig
%% Cell type:markdown id: tags:
Lag en liste som heter `numbers` og som inneholder alle heltall fra og med 1 til og med 34.
***Skriv koden din i boksen under.***
%% Cell type:code id: tags:
``` python
# Svar
numbers = list(range(1,35))
```
%% Cell type:markdown id: tags:
## Oppgave b: frivillig
%% Cell type:markdown id: tags:
Lag en liste som heter `my_guess` med 7 tall. Denne listen inneholder tallene som du tipper.
***Skriv koden din i boksen under.***
%% Cell type:code id: tags:
``` python
# Svar
my_guess = [5,7, 27, 13, 1, 2,11]
```
%% Cell type:markdown id: tags:
## Oppgave c: frivillig
%% Cell type:markdown id: tags:
Lag en funksjon som tar inn `n` som argument og som trekker ut `n` tall ut av listen `numbers` og legger de i en egen liste.
For å gjøre ting tilfeldig: `import random` og `random.randint(n,N)` gir tilfeldige tall fra og med n til og med N.
Eksempel på kjøring:
```python
>>>print(draw_numbers(numbers, 7))
[16, 33, 5, 20, 7, 4, 8]
```
***Skriv koden din i boksen under.***
%% Cell type:code id: tags:
``` python
# Svar
def draw_numbers(numbers,n):
drawn = []
import random
for x in range(0,n):
rand_nr = random.randint(0,len(numbers)-1)
drawn.append(numbers[rand_nr])
numbers.pop(rand_nr)
return drawn
```
%% Cell type:markdown id: tags:
#### Hint
%% Cell type:markdown id: tags:
Hint: Bruk funksjonene `pop()` og `append()` for å fjerne og legge til elementer i en liste. Husk at pop fjerner et element i en indeks i lista, den fjerner ikke tallet. Så numbers.pop(rand_num) fjerner elementet på indeks rand_num - altså hvis rand_num er 13 fjernes tallet på indeks 13, ikke tallet 13!
%% Cell type:markdown id: tags:
## Oppgave d: frivillig
%% Cell type:markdown id: tags:
Lag funksjonen `comp_list` som sammenligner to lister med tall. Antall like tall i listene skal returneres.
Eksempel på kjøring:
```python
>>>print(comp_list(draw_n_umbers(numbers,7),my_guess))
1
```
***Skriv koden din i boksen under.***
%% Cell type:code id: tags:
``` python
# Svar
def comp_list(list_a, list_b):
matches = 0
for x in range(0,len(list_a)):
matches += list_b.count(list_a[x])==1
return matches
```
%% Cell type:markdown id: tags:
## Oppgave e: frivillig
%% Cell type:markdown id: tags:
Lag en funksjon som tar inn antall like tall og like tilleggstall, og returnerer premien du har vunnet.
Eksempel på kjøring:
```python
>>>print(winnings(7,1))
2749455
>>>print(winnings(5,2))
95
>>>print(winnings(3,1))
0
```
***Skriv koden din i boksen under.***
%% Cell type:code id: tags:
``` python
# Svar
def winnings(num, e_num):
if (num==7):
return 2749455
elif (num==6 and e_num >=1):
return 102110
elif (num == 6):
return 3385
elif (num == 5):
return 95
elif (num == 4 and e_num >= 1):
return 45
else:
return 0
```
%% Cell type:markdown id: tags:
## Oppgave f: frivillig
%% Cell type:markdown id: tags:
Funksjonene skal settes sammen i main() slik at dette blir en fullverdig lottosimulator (for en lottorekke). Tallene du skal trekke ut (både lottotallene og tilleggstallene) kan legges i samme liste. Funksjonen `comp_list` kan da sammenligne de første 7 tallene, og så de siste 3 tallene, for å finne ut hvor mange like tall du har. main() skal returnere hvor mye du har tjent eller mest sannsynlig tapt på denne lottorekken. Dersom en lottorekke kosten 5 kroner, vil -5 returneres dersom winnings() er 0. Hvis du er heldig og winnings() blir 95 skal 90 returneres fra main().
**Husk at du kan bruke alle funksjoner du har definert over!**
***Skriv koden din i boksen under.***
%% Cell type:code id: tags:
``` python
# Svar
def main():
numbers = list(range(1,35))
my_guess = [5,7, 27, 13, 1, 2,11]
winning_list = draw_numbers(numbers,10)
main_nums = winning_list[0:7]
extra_nums = winning_list[7:10]
correct = comp_list(main_nums, my_guess)
extra_correct = comp_list(extra_nums,my_guess)
won = winnings(correct, extra_correct)- 5 #Må huske å trekke fra prisen på kupongen
return won
```
%% Cell type:markdown id: tags:
## Oppgave g: frivillig
Frivillig
%% Cell type:markdown id: tags:
Finn ut hvor mye man har vunnet etter å ha tippet en million ganger. Anta at premiepotten er det samme hver uke, og at en lottorekke koster 5 kroner.
***Skriv koden din i boksen under.***
%% Cell type:code id: tags:
``` python
```
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment