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

upd

parent e861a584
No related branches found
No related tags found
No related merge requests found
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
# Lotto # Lotto
**Læringsmål:** **Læringsmål:**
* Lister * Lister
* Tilfeldige tall * Tilfeldige tall
I denne oppgaven lage du lage en lottosimulator. I denne oppgaven lage du lage en lottosimulator.
Reglene er som følger: 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. * 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: * Premier deles ut basert på følgende tabell:
Premiergruppe|Premie (kr) Premiergruppe|Premie (kr)
:---|--- :---|---
7 rette |2 749 455 7 rette |2 749 455
6 rette + 1 tilleggstall |102 110 6 rette + 1 tilleggstall |102 110
6 rette |3 385 6 rette |3 385
5 rette |95 5 rette |95
4 rette + 1 tilleggstall |45 4 rette + 1 tilleggstall |45
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
## Oppgave a: frivillig ## Oppgave a: frivillig
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
Lag en liste som heter `numbers` og som inneholder alle heltall fra og med 1 til og med 34. 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.*** ***Skriv koden din i boksen under.***
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
# Svar # Svar
numbers = list(range(1,35)) numbers = list(range(1,35))
``` ```
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
## Oppgave b: frivillig ## Oppgave b: frivillig
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
Lag en liste som heter `my_guess` med 7 tall. Denne listen inneholder tallene som du tipper. Lag en liste som heter `my_guess` med 7 tall. Denne listen inneholder tallene som du tipper.
***Skriv koden din i boksen under.*** ***Skriv koden din i boksen under.***
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
# Svar # Svar
my_guess = [5,7, 27, 13, 1, 2,11] my_guess = [5,7, 27, 13, 1, 2,11]
``` ```
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
## Oppgave c: frivillig ## Oppgave c: frivillig
%% Cell type:markdown id: tags: %% 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. 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. 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: Eksempel på kjøring:
```python ```python
>>>print(draw_numbers(numbers, 7)) >>>print(draw_numbers(numbers, 7))
[16, 33, 5, 20, 7, 4, 8] [16, 33, 5, 20, 7, 4, 8]
``` ```
***Skriv koden din i boksen under.*** ***Skriv koden din i boksen under.***
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
# Svar # Svar
def draw_numbers(numbers,n): def draw_numbers(numbers,n):
drawn = [] drawn = []
import random import random
for x in range(0,n): for x in range(0,n):
rand_nr = random.randint(0,len(numbers)-1) rand_nr = random.randint(0,len(numbers)-1)
drawn.append(numbers[rand_nr]) drawn.append(numbers[rand_nr])
numbers.pop(rand_nr) numbers.pop(rand_nr)
return drawn return drawn
``` ```
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
#### Hint #### Hint
%% Cell type:markdown id: tags: %% 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! 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: %% Cell type:markdown id: tags:
## Oppgave d: frivillig ## Oppgave d: frivillig
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
Lag funksjonen `comp_list` som sammenligner to lister med tall. Antall like tall i listene skal returneres. Lag funksjonen `comp_list` som sammenligner to lister med tall. Antall like tall i listene skal returneres.
Eksempel på kjøring: Eksempel på kjøring:
```python ```python
>>>print(comp_list(draw_n_umbers(numbers,7),my_guess)) >>>print(comp_list(draw_n_umbers(numbers,7),my_guess))
1 1
``` ```
***Skriv koden din i boksen under.*** ***Skriv koden din i boksen under.***
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
# Svar # Svar
def comp_list(list_a, list_b): def comp_list(list_a, list_b):
matches = 0 matches = 0
for x in range(0,len(list_a)): for x in range(0,len(list_a)):
matches += list_b.count(list_a[x])==1 matches += list_b.count(list_a[x])==1
return matches return matches
``` ```
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
## Oppgave e: frivillig ## Oppgave e: frivillig
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
Lag en funksjon som tar inn antall like tall og like tilleggstall, og returnerer premien du har vunnet. Lag en funksjon som tar inn antall like tall og like tilleggstall, og returnerer premien du har vunnet.
Eksempel på kjøring: Eksempel på kjøring:
```python ```python
>>>print(winnings(7,1)) >>>print(winnings(7,1))
2749455 2749455
>>>print(winnings(5,2)) >>>print(winnings(5,2))
95 95
>>>print(winnings(3,1)) >>>print(winnings(3,1))
0 0
``` ```
***Skriv koden din i boksen under.*** ***Skriv koden din i boksen under.***
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
# Svar # Svar
def winnings(num, e_num): def winnings(num, e_num):
if (num==7): if (num==7):
return 2749455 return 2749455
elif (num==6 and e_num >=1): elif (num==6 and e_num >=1):
return 102110 return 102110
elif (num == 6): elif (num == 6):
return 3385 return 3385
elif (num == 5): elif (num == 5):
return 95 return 95
elif (num == 4 and e_num >= 1): elif (num == 4 and e_num >= 1):
return 45 return 45
else: else:
return 0 return 0
``` ```
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
## Oppgave f: frivillig ## Oppgave f: frivillig
%% Cell type:markdown id: tags: %% 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(). 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!** **Husk at du kan bruke alle funksjoner du har definert over!**
***Skriv koden din i boksen under.*** ***Skriv koden din i boksen under.***
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
# Svar # Svar
def main(): def main():
numbers = list(range(1,35)) numbers = list(range(1,35))
my_guess = [5,7, 27, 13, 1, 2,11] my_guess = [5,7, 27, 13, 1, 2,11]
winning_list = draw_numbers(numbers,10) winning_list = draw_numbers(numbers,10)
main_nums = winning_list[0:7] main_nums = winning_list[0:7]
extra_nums = winning_list[7:10] extra_nums = winning_list[7:10]
correct = comp_list(main_nums, my_guess) correct = comp_list(main_nums, my_guess)
extra_correct = comp_list(extra_nums,my_guess) extra_correct = comp_list(extra_nums,my_guess)
won = winnings(correct, extra_correct)- 5 #Må huske å trekke fra prisen på kupongen won = winnings(correct, extra_correct)- 5 #Må huske å trekke fra prisen på kupongen
return won return won
``` ```
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
## Oppgave g: frivillig ## Oppgave g: frivillig
Frivillig Frivillig
%% Cell type:markdown id: tags: %% 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. 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.*** ***Skriv koden din i boksen under.***
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
# Svar
won = 0
for i in range(10):
won += main()
print(won)
``` ```
%% Output
-5
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment