Diskussion:Fördelning av mandat

Från Wikiskola
Hoppa till navigering Hoppa till sök

Förädlad kod

Victors program med listor

# Listan kommer vara fylld med alla mandat i slutet av programet
Mandat = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];

# Röstetal för respektive partier som blev röstde på
Röstetal = [ 516119, 1822691, 284931, 555567, 354562, 1279192, 408061, 1130832 ];

# Delnings nummer
DelningsNummer = 6/5;

# Först delar man röstetalet med 1.2
RöstetalDelad = [x / (DelningsNummer) for x in Röstetal];

Iter = 0
while Iter < 349:
    Iter += 1;
    
    # Hitta det största talet
    StörstaTalet = max(RöstetalDelad);

    # Hitta vart det nummeret är i listan
    Index = RöstetalDelad.index(StörstaTalet);

    # Lägg till en mandat till det våran index
    Mandat[Index] += 1;

    # Nu måste vi dela röstetalet med antal mandat * 2 + 1
    RöstetalDelad[Index] = Röstetal[Index] / (Mandat[Index] * 2 + 1);

    # Jag vet inte varför men här så avrundar jag till 2 decimaler
    RöstetalDelad = [float("{0:.2f}".format(x)) for x in RöstetalDelad];
    
    # print(RöstetalDelad);
#

# Här skriver jag de mandater som vart fördelade
for Val in Mandat:
    print("Mandat", Val);
#

print(Mandat);