Skip to content

Instantly share code, notes, and snippets.

View roSievers's full-sized avatar

Rolf Kreibaum roSievers

View GitHub Profile
@roSievers
roSievers / pirates.py
Last active August 29, 2015 14:09 — forked from robket/pirates.py
import math
def distributionWithNPirates(n):
if (n == 1): # Base case
return [100]
numberOfVotesRequired = int(math.ceil(n / 2.0))
# Pirate n will vote for his proposal regardless
numberOfVotesRequired -= 1
distributionIfPirateNKilled = distributionWithNPirates(n - 1)
piratesThatGetTheLeastIfPirateNIsKilled = sorted(range(len(distributionIfPirateNKilled)), key=distributionIfPirateNKilled.__getitem__)