Pascal's triangle: Difference between revisions

Line 321:
// an order 4 sierpinski triangle is a 2^4 lines generic pascal triangle with xor operation
foreach(i ; [16]) writef(sierpinski(i)) ;
}</lang>
 
A more straightforward version
 
<lang d>int[][] pascalsTriangle(int rows) {
auto tri = new int[][rows];
for (int r = 0; r < rows; r++) {
int v = 1;
for (int c = 0; c <= r; c++) {
tri[r] ~= v;
v = (v * (r - c)) / (c + 1);
}
}
return tri;
}</lang>
 
<lang d>unittest {
auto pt = pascalsTriangle(10);
assert(pt[0] == [1]);
assert(pt[1] == [1,1]);
assert(pt[2] == [1,2,1]);
assert(pt[3] == [1,3,3,1]);
assert(pt[4] == [1,4,6,4,1]);
assert(pt[5] == [1,5,10,10,5,1]);
assert(pt[6] == [1,6,15,20,15,6,1]);
assert(pt[7] == [1,7,21,35,35,21,7,1]);
assert(pt[8] == [1,8,28,56,70,56,28,8,1]);
assert(pt[9] == [1,9,36,84,126,126,84,36,9,1]);
}</lang>
 
Anonymous user