Skip to main content
edited tags
Link
JJJ
  • 39.7k
  • 10
  • 121
  • 184
Became Hot Network Question
Tweeted twitter.com/StackPolitics/status/1407624502054473733
No reason to swear in question titles.
Link
Philipp
  • 78.9k
  • 22
  • 243
  • 281

How (the heck) will New York City actually physically implement the ranked choice voting algorithm with thousands of unique mayoral votings possible?

added 13 characters in body
Source Link
uhoh
  • 16.9k
  • 3
  • 82
  • 177

Politico's New Yorkers pick a new mayor after chaotic, historic primary begins:

NEW YORK — Polls have closed in New York City’s first ever ranked-choice election and, while the die has been cast, voters may not know the outcome for weeks.

[...] Further extending the ballot count is the advent of ranked-choice voting, which allows New Yorkers to select up to five candidates for each position. The system kicks in when no candidate attains 50 percent of votes on the first pass. The board plans to issue preliminary results of ranked ballots on June 29.

According to this:

More than a dozen Democrats and two Republicans will vie to replace outgoing Mayor Bill de Blasio (D). The ranked-choice election is expected to take weeks to resolve.

So the number of distinct yet valid ways a person could vote is large. I think that it's the sum of 0-, 1-, 2-, 3-, 4- and 5-from-14 possibilities, but I'm not even sure of that (see below).

I'm curious how New York City will physically and computationally implement ranked-choice vote counting.

Question: Algorithmically it can be done via several passes of a sorting function over all ranked-choice votes in a table in memory or on a hard drive, but how do they implement this with the various physical forms of votes cast in New York's mayoral election?

Will they resort to all electronic implementation of the algorithm, all physical, or some hybrid method?


In Python, assuming (for example) exactly 14 candidates available (in math it's number of k-combinations) or 14!/(k!(14-k)!); 0≤k≤5number of permutations without repetitions)

from itertools import combinationspermutations
possible = []
for k in [0, 1, 2, 3, 4, 5]:
    uniques = list(combinationspermutations('abcdefghijklmn', k))
    possible.append(uniques)
    print(k, len(uniques))
all_possible = sum(possible, [])
print('total: ', len(all_possible))
 

 k        uniques
 0           1
 1          14
 2        91 182
 3       364 2184
 4      1001 24024
 5      2002240240

total:  3473266645

Politico's New Yorkers pick a new mayor after chaotic, historic primary begins:

NEW YORK — Polls have closed in New York City’s first ever ranked-choice election and, while the die has been cast, voters may not know the outcome for weeks.

[...] Further extending the ballot count is the advent of ranked-choice voting, which allows New Yorkers to select up to five candidates for each position. The system kicks in when no candidate attains 50 percent of votes on the first pass. The board plans to issue preliminary results of ranked ballots on June 29.

According to this:

More than a dozen Democrats and two Republicans will vie to replace outgoing Mayor Bill de Blasio (D). The ranked-choice election is expected to take weeks to resolve.

So the number of distinct yet valid ways a person could vote is large. I think that it's the sum of 0-, 1-, 2-, 3-, 4- and 5-from-14 possibilities, but I'm not even sure of that (see below).

I'm curious how New York City will physically and computationally implement ranked-choice vote counting.

Question: Algorithmically it can be done via several passes of a sorting function over all ranked-choice votes in a table in memory or on a hard drive, but how do they implement this with the various physical forms of votes cast in New York's mayoral election?

Will they resort to all electronic implementation of the algorithm, all physical, or some hybrid method?


In Python, assuming (for example) exactly 14 candidates available (in math it's number of k-combinations) or 14!/(k!(14-k)!); 0≤k≤5)

from itertools import combinations
possible = []
for k in [0, 1, 2, 3, 4, 5]:
    uniques = list(combinations('abcdefghijklmn', k))
    possible.append(uniques)
    print(k, len(uniques))
all_possible = sum(possible, [])
print('total: ', len(all_possible))
 

 k      uniques
 0         1
 1        14
 2        91
 3       364
 4      1001
 5      2002

total:  3473

Politico's New Yorkers pick a new mayor after chaotic, historic primary begins:

NEW YORK — Polls have closed in New York City’s first ever ranked-choice election and, while the die has been cast, voters may not know the outcome for weeks.

[...] Further extending the ballot count is the advent of ranked-choice voting, which allows New Yorkers to select up to five candidates for each position. The system kicks in when no candidate attains 50 percent of votes on the first pass. The board plans to issue preliminary results of ranked ballots on June 29.

According to this:

More than a dozen Democrats and two Republicans will vie to replace outgoing Mayor Bill de Blasio (D). The ranked-choice election is expected to take weeks to resolve.

So the number of distinct yet valid ways a person could vote is large. I think that it's the sum of 0-, 1-, 2-, 3-, 4- and 5-from-14 possibilities, but I'm not even sure of that (see below).

I'm curious how New York City will physically and computationally implement ranked-choice vote counting.

Question: Algorithmically it can be done via several passes of a sorting function over all ranked-choice votes in a table in memory or on a hard drive, but how do they implement this with the various physical forms of votes cast in New York's mayoral election?

Will they resort to all electronic implementation of the algorithm, all physical, or some hybrid method?


In Python, assuming (for example) exactly 14 candidates available (in math it's number of permutations without repetitions)

from itertools import permutations
possible = []
for k in [0, 1, 2, 3, 4, 5]:
    uniques = list(permutations('abcdefghijklmn', k))
    possible.append(uniques)
    print(k, len(uniques))
all_possible = sum(possible, [])
print('total: ', len(all_possible))

 k        uniques
 0           1
 1          14
 2         182
 3        2184
 4       24024
 5      240240

total:  266645
edited body
Source Link
uhoh
  • 16.9k
  • 3
  • 82
  • 177
Loading
added 116 characters in body
Source Link
uhoh
  • 16.9k
  • 3
  • 82
  • 177
Loading
added 116 characters in body
Source Link
uhoh
  • 16.9k
  • 3
  • 82
  • 177
Loading
Post Undeleted by uhoh
Post Deleted by uhoh
Source Link
uhoh
  • 16.9k
  • 3
  • 82
  • 177
Loading