Fördelning av mandat: Skillnad mellan sidversioner
Hoppa till navigering
Hoppa till sök
Hakan (diskussion | bidrag) |
Hakan (diskussion | bidrag) |
||
(En mellanliggande sidversion av samma användare visas inte) | |||
Rad 243: | Rad 243: | ||
Programmet använder sig av [https://en.wikipedia.org/wiki/Webster/Sainte-Laguë_method Sainte-Laguë-metoden] | Programmet använder sig av [https://en.wikipedia.org/wiki/Webster/Sainte-Laguë_method Sainte-Laguë-metoden] | ||
{{lista| | |||
<pre> | |||
# Sainte-Lague in Python | |||
# Copyright (C) Gustaf H. | |||
seated = 0 | |||
parties = [ | |||
{'name':'S', 'votes': 1347950, 'seats': 0}, | |||
{'name':'M', 'votes': 848739, 'seats': 0}, | |||
{'name':'KD', 'votes': 286175, 'seats': 0}, | |||
{'name':'C', 'votes': 389672, 'seats': 0}, | |||
{'name':'L', 'votes': 225220, 'seats': 0}, | |||
{'name':'MP', 'votes': 180215, 'seats':0}, | |||
{'name':'SD', 'votes': 848503, 'seats':0}, | |||
{'name':'V', 'votes': 345378, 'seats':0} | |||
]; | |||
while (seated != 39): | |||
record = [] | |||
keepbig = 0 | |||
keepindex = 0 | |||
for party in parties: | |||
if party['seats'] == 0: | |||
record.append((party['votes'] / 1.2) / ((2 * party['seats']) + 1)) | |||
else: | |||
record.append((party['votes']) / ((2 * party['seats']) + 1)) | |||
for index, check in enumerate(record): | |||
if check > keepbig: | |||
keepbig = check | |||
keepindex = index | |||
parties[keepindex]['seats'] += 1 | |||
seated += 1 | |||
print(parties) | |||
</pre> | |||
}} |
Nuvarande version från 17 oktober 2018 kl. 11.15
Undersök hur ett Pythonprogram fördelar mandat
Det här kodexemplet passar till ett tematiskt arbete inför skolval och riksdagsval och är lämpligt att ha i kurserna Ma1a, Ma1b och Ma1c. Det kräver inga förkunskaper i programmering.
Koden
Lista: (klicka expandera till höger)
Credit
Tomaas Westman skapade programmet.
Uppgift
Uppgift |
---|
Hur fungerar programmet
1. Studera koden. Vad gör programmet?
2. Kör programmet och jämför resultatet med den befintliga mandatfördelningen. Stämmer det? Om inte, varför?
|
Förädlad kod
Victors program med listor
Lista: (klicka expandera till höger)
Gustaf Haglunds kod
Programmet använder sig av Sainte-Laguë-metoden
Lista: (klicka expandera till höger)