How to efficiently calculate a row in pascal’s triangle?
>>> def pascal(n): … line = [1] … for k in range(n): … line.append(line[k] * (n-k) / (k+1)) … return line … >>> pascal(9) [1, 9, 36, 84, 126, 126, 84, 36, 9, 1] This uses the following identity: C(n,k+1) = C(n,k) * (n-k) / (k+1) So you can start with C(n,0) = 1 and … Read more