From: <umg...@us...> - 2007-02-21 19:09:14
|
Revision: 353 http://svn.sourceforge.net/pybridge/?rev=353&view=rev Author: umgangee Date: 2007-02-21 11:09:09 -0800 (Wed, 21 Feb 2007) Log Message: ----------- In indexToDeal, make initial n = k-1 instead of 0, to eliminate a few unnecessary calls to comb. Modified Paths: -------------- trunk/pybridge/pybridge/bridge/deck.py Modified: trunk/pybridge/pybridge/bridge/deck.py =================================================================== --- trunk/pybridge/pybridge/bridge/deck.py 2007-02-18 21:51:28 UTC (rev 352) +++ trunk/pybridge/pybridge/bridge/deck.py 2007-02-21 19:09:09 UTC (rev 353) @@ -141,9 +141,14 @@ deal[seat] = [] for k in range(13, 0, -1): # Find the largest n such that comb(n, k) <= indexes[seat]. - n = 0 + n = k-1 # n < k implies comb(n, k) = 0 + + # comb(n+1, k) = + # n-k = -1 => comb(n, k) * (n+1) + # otherwise => (comb(n, k) * (n+1)) / (n+1 - k) while comb(n+1, k) <= indexes[seat]: n += 1 + # Remove card index from indices, add card to hand. indexes[seat] -= comb(n, k) card = cardSeq[n] This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |