각주의 인구 목록이 주어지면, 가장 큰 것부터 가장 적은 것까지, 주가 선거 대학에서받는 투표 수를 산출합니다.
입력 : 첫 번째 숫자는 배포 할 총 투표 수를 나타냅니다. 그 다음에 인구리스트가 이어집니다. 이 예에서는 상태의 약어가 사용되지만 대문자와 소문자가 포함 된 이름을 사용할 수 있습니다. 여기에 포함 된 유일한 정보가 주 약자와 인구 집단 인 한, 원하는 형식으로 취할 수 있습니다.
입력은 함수 또는 원하는 방식으로 인수로 사용할 수 있습니다.
입력 가능 예 : 538 [[CA 38000000], [NH 1300000] etc.]
결과 : 각 주가 얻는 투표 수를 어떤 형식으로 출력합니다. 상태를 최대에서 최소로 주문하십시오. 두 주가 같은 수의 투표권을 가지고 있다면, 사전에서 알파벳순으로 나오는 이름을 순서대로 정렬하십시오.
투표 수를 찾기 전에 먼저 입력 목록에 DC라는 이름의 주가 있는지 확인하고, 존재하는 경우 인구에 관계없이 주 3에 투표하십시오. 그런 다음 목록에서 제거하고 DC가 존재하지 않는 것처럼 나머지 투표를 할당하십시오.
선거 대학의 투표 수는 상원 의원과 대표의 수로 정의됩니다. 모든 주에는 2 명의 상원 의원이 있으므로 총 대표 (예시 입력에서는 538)에서 주 수의 두 배를 빼서 대표자 수를 얻습니다. 모든 주에 하나의 담당자를 지정하십시오. 그런 다음 다음 프로세스를 수행하십시오.
각 주에 모집단이
A있는P/sqrt(2)곳에 정의 된 번호를 지정하십시오P.의 값에 따라 상태를 정렬하십시오
A.첫 번째 상태 (가장 큰 상태
A)에 담당자를 한 명 더 지정하십시오 .의 값은 재 할당
A로서A = P/(sqrt(n)*sqrt(n + 1)), 여기서n상태에 할당 된 대표 현재 수있다.2 단계로 돌아가십시오. 모든 담당자가 없어 질 때까지 반복하십시오.
예제 출력 가능 : {CA: 518, NH: 20}. 출력은이 형식 일 필요는 없지만 동일한 정보를 포함해야합니다.
투표 수보다 적어서 투표를 합법적으로 할당 할 수없는 경우 3*(# of states)원하는 것을 인쇄하십시오. 충돌하거나 오류가 발생할 수 있습니다.
테스트 사례 :
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으로,A = P/(sqrt(n)*sqrt(n + 1))여기서n상태에 할당 된 멤버의 현재 수입니다." 변경되어야 "의 값을 재 할당하는 단계A로서A = P/(sqrt(n)*sqrt(n + 1)), 여기서n의 현재 개수 대표 상태에 할당.". 그것은 나를 버렸다.