Skip to content

Instantly share code, notes, and snippets.

@tueda
Created February 1, 2014 22:47
Show Gist options
  • Save tueda/8760191 to your computer and use it in GitHub Desktop.
Save tueda/8760191 to your computer and use it in GitHub Desktop.
1/9998 = 0.0001 0002 0004 0008 0016 0032 0064 0128 0256...
(* https://news.ycombinator.com/item?id=7144616 *)
SplitDigits[x_, n_, m_] := Module[{a},
a = RealDigits[FractionalPart[N[x, n + 1]]];
a = Join[ConstantArray[0, -a[[2]]], a[[1]]];
a = Drop[a, -1];
a = ToString /@ a;
a = Partition[a, m];
a = (StringJoin @@ # &) /@ a;
a = ToExpression /@ a;
a
];
n = 26;
aa = SplitDigits[1/99999998, 8 n, 8];
bb = Table[2^n, {n, 0, n - 1}];
aa // Print;
bb // Print;
aa == bb // Print;
n = 44;
aa = SplitDigits[1000/997002999, 3 (n - 1), 3];
bb = Table[Binomial[n + 1, 2], {n, 0, n - 1}];
aa // Print;
bb // Print;
aa == bb // Print;
n = 39;
aa = SplitDigits[1/9999999899999999, 8 (n - 1), 8];
bb = Table[Fibonacci[i], {i, 0, n - 1}];
aa // Print;
bb // Print;
aa == bb // Print;
n = 30;
aa = SplitDigits[1001000/997002999, 3 n, 3];
bb = Table[n^2, {n, 1, n}];
aa // Print;
bb // Print;
aa == bb // Print;
(* vim: set ft=mma et ts=8 sts=2 sw=2: *)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment