Skip to content

Instantly share code, notes, and snippets.

@alphaKAI
Created December 9, 2016 08:32
Show Gist options
  • Select an option

  • Save alphaKAI/ba8bbdf8a5f3357ce3aef538d27de711 to your computer and use it in GitHub Desktop.

Select an option

Save alphaKAI/ba8bbdf8a5f3357ce3aef538d27de711 to your computer and use it in GitHub Desktop.
Fractal of Pascal's triangle
-
- -
- * -
- - - -
- * * * -
- - * * - -
- * - * - * -
- - - - - - - -
- * * * * * * * -
- - * * * * * * - -
- * - * * * * * - * -
- - - - * * * * - - - -
- * * * - * * * - * * * -
- - * * - - * * - - * * - -
- * - * - * - * - * - * - * -
- - - - - - - - - - - - - - - -
- * * * * * * * * * * * * * * * -
- - * * * * * * * * * * * * * * - -
- * - * * * * * * * * * * * * * - * -
- - - - * * * * * * * * * * * * - - - -
- * * * - * * * * * * * * * * * - * * * -
- - * * - - * * * * * * * * * * - - * * - -
- * - * - * - * * * * * * * * * - * - * - * -
- - - - - - - - * * * * * * * * - - - - - - - -
- * * * * * * * - * * * * * * * - * * * * * * * -
- - * * * * * * - - * * * * * * - - * * * * * * - -
- * - * * * * * - * - * * * * * - * - * * * * * - * -
- - - - * * * * - - - - * * * * - - - - * * * * - - - -
- * * * - * * * - * * * - * * * - * * * - * * * - * * * -
- - * * - - * * - - * * - - * * - - * * - - * * - - * * - -
- * - * - * - * - * - * - * - * - * - * - * - * - * - * - * -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -
- - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - -
- * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * -
- - - - * * * * * * * * * * * * * * * * * * * * * * * * * * * * - - - -
- * * * - * * * * * * * * * * * * * * * * * * * * * * * * * * * - * * * -
- - * * - - * * * * * * * * * * * * * * * * * * * * * * * * * * - - * * - -
- * - * - * - * * * * * * * * * * * * * * * * * * * * * * * * * - * - * - * -
- - - - - - - - * * * * * * * * * * * * * * * * * * * * * * * * - - - - - - - -
- * * * * * * * - * * * * * * * * * * * * * * * * * * * * * * * - * * * * * * * -
- - * * * * * * - - * * * * * * * * * * * * * * * * * * * * * * - - * * * * * * - -
- * - * * * * * - * - * * * * * * * * * * * * * * * * * * * * * - * - * * * * * - * -
- - - - * * * * - - - - * * * * * * * * * * * * * * * * * * * * - - - - * * * * - - - -
- * * * - * * * - * * * - * * * * * * * * * * * * * * * * * * * - * * * - * * * - * * * -
- - * * - - * * - - * * - - * * * * * * * * * * * * * * * * * * - - * * - - * * - - * * - -
- * - * - * - * - * - * - * - * * * * * * * * * * * * * * * * * - * - * - * - * - * - * - * -
- - - - - - - - - - - - - - - - * * * * * * * * * * * * * * * * - - - - - - - - - - - - - - - -
- * * * * * * * * * * * * * * * - * * * * * * * * * * * * * * * - * * * * * * * * * * * * * * * -
- - * * * * * * * * * * * * * * - - * * * * * * * * * * * * * * - - * * * * * * * * * * * * * * - -
- * - * * * * * * * * * * * * * - * - * * * * * * * * * * * * * - * - * * * * * * * * * * * * * - * -
- - - - * * * * * * * * * * * * - - - - * * * * * * * * * * * * - - - - * * * * * * * * * * * * - - - -
- * * * - * * * * * * * * * * * - * * * - * * * * * * * * * * * - * * * - * * * * * * * * * * * - * * * -
- - * * - - * * * * * * * * * * - - * * - - * * * * * * * * * * - - * * - - * * * * * * * * * * - - * * - -
- * - * - * - * * * * * * * * * - * - * - * - * * * * * * * * * - * - * - * - * * * * * * * * * - * - * - * -
- - - - - - - - * * * * * * * * - - - - - - - - * * * * * * * * - - - - - - - - * * * * * * * * - - - - - - - -
- * * * * * * * - * * * * * * * - * * * * * * * - * * * * * * * - * * * * * * * - * * * * * * * - * * * * * * * -
- - * * * * * * - - * * * * * * - - * * * * * * - - * * * * * * - - * * * * * * - - * * * * * * - - * * * * * * - -
- * - * * * * * - * - * * * * * - * - * * * * * - * - * * * * * - * - * * * * * - * - * * * * * - * - * * * * * - * -
- - - - * * * * - - - - * * * * - - - - * * * * - - - - * * * * - - - - * * * * - - - - * * * * - - - - * * * * - - - -
- * * * - * * * - * * * - * * * - * * * - * * * - * * * - * * * - * * * - * * * - * * * - * * * - * * * - * * * - * * * -
- - * * - - * * - - * * - - * * - - * * - - * * - - * * - - * * - - * * - - * * - - * * - - * * - - * * - - * * - - * * - -
- * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
import std.algorithm,
std.functional,
std.array,
std.range,
std.stdio;
import std.bigint;
BigInt Px(BigInt n, BigInt r) {
BigInt ret = 1;
for (; r > 0; r--) {
ret *= n--;
}
return ret;
}
alias P = memoize!Px;
BigInt Cx(BigInt n, BigInt k) {
return n.P(k) / k.P(k);
}
alias C = memoize!Cx;
BigInt[] rows(BigInt n) {
return n.iota.map!(r => (n-1).Cx(r)).array;
}
void main() {
BigInt M = 64;
BigInt[][] trs = M.iota.map!(m => (m + 1).rows).array;
auto mlen = trs[$ - 1].length;
foreach (i, tr; trs) {
foreach (_; 1..(mlen - i)) {
write(" ");
}
foreach (t; tr) {
write(t % 2 ? "-": "*" , " ");
}
writeln;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment