Dato un elenco delle popolazioni di ogni stato, ha prodotto, dal più grande al meno, il numero di voti che lo stato ottiene nel collegio elettorale.
Input: il primo numero rappresenta il numero totale di voti da distribuire; è seguito da un elenco di e popolazioni. In questo esempio, vengono utilizzate abbreviazioni per stati, ma è possibile utilizzare qualsiasi nome contenente lettere maiuscole e minuscole. Puoi prenderlo in qualsiasi formato desideri, a condizione che l'unica informazione contenuta sia l'abbreviazione dello stato e la sua popolazione.
L'input può essere preso come argomento per una funzione o come desiderato.
Esempio (possibile) input: 538 [[CA 38000000], [NH 1300000] etc.]
Output: output, in alcuni formati, il numero di voti ottenuti da ogni stato. Ordina gli stati dal più grande al meno. Se due stati hanno lo stesso numero di voti, ordina secondo il nome che verrebbe per primo in un dizionario (che viene prima in ordine alfabetico).
Prima di trovare il numero di voti, controlla se esiste uno stato denominato DC nell'elenco degli input e, in tal caso, assegna allo stato 3 voti, indipendentemente dalla sua popolazione. Quindi, rimuovilo dall'elenco e assegna il resto dei voti come se DC non esistesse.
Il numero di voti nel collegio elettorale è definito come la somma del numero di senatori e rappresentanti. Ogni stato riceve due senatori, quindi sottrai il doppio del numero di stati dal totale (538, nell'input di esempio) per ottenere il numero di rappresentanti. Assegna a ogni stato un rappresentante per iniziare. Quindi, eseguire il seguente processo:
Assegna a ogni stato un numero,
Adefinito comeP/sqrt(2)dove siPtrova la popolazione.Ordinare gli stati in base ai loro valori di
A.Assegna al primo stato (quello con il più grande
A) un altro rappresentante.Riassegna i valori di
A, asA = P/(sqrt(n)*sqrt(n + 1)), dovenè il numero corrente di rappresentanti assegnati allo stato.Tornare al passaggio 2. Ripetere fino a quando tutti i rappresentanti si sono esauriti.
Esempio (possibile) uscita: {CA: 518, NH: 20}. L'output non deve essere in questo formato, ma deve contenere le stesse informazioni.
Tieni presente che se non è possibile assegnare legalmente voti perché sono presenti meno 3*(# of states)voti, stampa quello che vuoi. È possibile arrestarsi in modo anomalo, generare un errore, ecc.
Casi test:
538 [['CA' 38000000], ['NH' 1300000]] --> CA: 518, NH: 20
538 [['NH' 1300000], ['CA' 38000000]] --> CA: 518, NH: 20 (must be in order from greatest to least!)
538 [['DC' 1000000], ['RH' 1]] --> RH: 535, DC: 3
100 [['A', 12], ['B', 8], ['C', 3]] --> A: 51, B: 35, C: 14
100 [['A', 12], ['B', 8], ['C', 3], ['D', 0]]: --> [49, 34, 14, 3] (yes, even states with no population get votes)
2 [['A', 1]] --> aasdfksjd;gjhkasldfj2fkdhgas (possible output)
12 [['A', 1], ['B', 2], ['C', 3], ['D', 4]] --> A: 3, B: 3, C: 3, D: 3
42 [['K', 123], ['L', 456], ['M', 789]] --> M: 23, L: 14, K: 5
420 [['K', 123], ['L', 456], ['M', 789]] --> M: 241, L: 140, K: 39
135 [['C', 236841], ['D', 55540], ['G', 70835], ['K', 68705], ['M', 278514], ['Ms', 475327], ['Nh', 141822], ['Nj', 179570], ['Ny', 331589], ['Nc', 353523], ['P', 432879], ['R', 68446], ['Sc', 206236], ['Ve', 85533], ['Vi', 630560]] --> Vi: 20, Ms: 16, P: 14, Nc: 12, Ny: 12, M: 10, C: 9, Sc: 8, Nj: 7, Nh: 6, Ve: 5, D: 4, G: 4, K: 4, R: 4
A, comeA = P/(sqrt(n)*sqrt(n + 1)), dovenè il numero corrente di membri assegnati allo stato". dovrebbe essere modificato in "Riassegna valori diA, comeA = P/(sqrt(n)*sqrt(n + 1)), dove sintrova il numero corrente di rappresentanti assegnati allo stato". Questo mi ha buttato via.