Given a ranking over the candidates, generate a new ranking by assigning each candidate at
        position i a Plakett-Luce weight of phi^i and draw a new ranking.

        :ivar list<int> V: Contains integer representations of each candidate in order of their
            ranking in a vote, from first to last.

def getNextSample(self, V):
        """
        Given a ranking over the candidates, generate a new ranking by assigning each candidate at
        position i a Plakett-Luce weight of phi^i and draw a new ranking.

        :ivar list<int> V: Contains integer representations of each candidate in order of their
            ranking in a vote, from first to last.
        """

        W, WProb = self.drawRankingPlakettLuce(V)
        VProb = self.calcProbOfVFromW(V, W)
        acceptanceRatio = self.calcAcceptanceRatio(V, W)
        prob = min(1.0, acceptanceRatio * (VProb/WProb))
        if random.random() <= prob:
            V = W
        return V