C#을 사용하여 OpenSTV 선거를위한 .BLT 파일을 어떻게 생성합니까?

StackOverflow https://stackoverflow.com/questions/2233695

  •  19-09-2019
  •  | 
  •  

문제

중재자 선거 결과와 관련하여 가장 최근의 So 블로그 게시물을 본 후 OpenSTV를 다운로드했습니다. Jeff는 OpenSTV를 사용하여 선거를 수행했으며 투표 데이터가 포함 된 투표 파일 (.BLT)을 제공했다고 썼습니다.

내 질문은 : C#에서 .BLT 파일을 어떻게 만들 수 있습니까?

투표 페이지가 그렇게했다고 생각할 수있는 두 가지 방법은 다음과 같습니다.

  • 투표 페이지는 각 투표를 SQL 데이터베이스에 추가 한 다음 어떻게 든 투표가 끝난 후이 투표가 .BLT 파일로 내보 렸습니다. 그래도 어떻게? 어떻게 할 수 있습니까?
  • 또는 투표 페이지가 파일을 생성 한 다음 누군가 투표 할 때마다 추가했습니다. 투표 페이지가 어떻게 작동했는지가 아니라고 확신합니다. 왜냐하면 완전히 비평 할 수 없기 때문에 어떻게 C#에서이 작업을 수행 할 수 있습니까?

나는 두 가지 가능성이 어떻게 작동하는지, C#에서 어떻게 할 수 있는지 알아내는 데 관심이 있습니다. 미리 감사드립니다. 아, 그리고 제프 가이 질문을보기를 바랍니다. 아마 그는 아마도 큰 대답을했기 때문입니다 ...

도움이 되었습니까?

해결책

BLT 파일 형식에 대한 가장 좋은 설명은 다음과 같습니다.

    4 2          # four candidates are competing for two seats
    -2           # Bob has withdrawn (optional)
    1 4 1 3 2 0  # first ballot
    1 2 4 1 3 0
    1 1 4 2 3 0  # The first number is the ballot weight (>= 1).
    1 1 2 4 3 0  # The last 0 is an end of ballot marker.
    1 1 4 3 0    # Numbers in between correspond to the candidates
    1 3 2 4 1 0  # on the ballot.
    1 3 4 1 2 0
    1 3 4 1 2 0  # Chuck, Diane, Amy, Bob
    1 4 3 2 0
    1 2 3 4 1 0  # last ballot
    0            # end of ballots marker
    "Amy"        # candidate 1
    "Bob"        # candidate 2
    "Chuck"      # candidate 3
    "Diane"      # candidate 4
    "Gardening Club Election"  # title

내가 한 일은

  1. 투표 결과를 얻으려면 SQL Management Studio에서 임시 쿼리를 수행하십시오.
  2. 텍스트 파일에 복사 결과를 얻은 결과 (출력은 기본적으로 탭으로 표시됩니다)
  3. 쿼리에서 BLT 형식으로 변환하기 위해 작은 50 라인 C# 앱을 작성했습니다.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top