Strartifacts

Here’s a sequence of decreasing numbers. Which number comes next?

612 → 600 → 594 → 414 → 398 → 182 → ?

It’s 166, because the numbers decrease by the product of their digits higher than 0:

612 – 6*2 = 612 – 12 = 600 → 600 – 6 = 594 → 594 – 5*9*4 = 594 – 180 = 414 → 414 – 4*4 = 414 – 16 = 398 → 398 – 3*9*8 = 398 – 216 = 166

Eventually the sequence will reached 0 and stop. If you want to see how this function looks on a graph, here it is:

x = n <= 3722, f(i) -= digmul(f(i)) → 0 (click for larger)


The graph represents n on the x-axis, with the red circles marking n = 100 and n = 1000. The sequence of falling digit-products is on the y-axis, but the graph has a special feature there. The y-axis is compressed according to the size of n, so that n = 1000 falls to 0 with n -= digmul(n) in the same height as n = 100. Here’s a graph for the same function in base 7:

x = n <= 3722 in base 7, f(i) -= digmul(f(i)) → 0


Now the red circles represent 7^2 = 49, 7^3 = 343, 7^4 = 2401, i.e. 100b7, 1000b7, 10000b7. And you can try other functions for n = n – func(n) = n -= func(n). Here’s a graph for n -= hailstep(n), where hailstep(n) returns the number of steps in the Collatz sequence for n:

x = n <= 3722 in base 7, f(i) -= hailstep(f(i)) → f(i) < 2


You form a Collatz sequence by starting with a whole number and finding the next number according to two rules:

1. If n(i) is divisible by 2, n(i+1) = n(i) / 2
2. If n(i) is not divisible by 2, n(i+1) = n(i) * 3 + 1

So the Collatz sequence for n = 10 looks like this:

10 → 10 / 2 = 5 → 5 * 3 + 1 = 16 → 16 / 2 = 8 → 8 / 2 = 4 → 4 / 2 = 2 → 2 / 2 = 1.

When you reach 1, you stop. So that’s six steps for n = 10. But does every n reach 1 in the end? It’s a very simple question about a very simple function. But nobody knows and nobody can prove that either all numbers do or at least one number doesn’t. The German mathematician Lothar Collatz (1910-90) conjectured that all numbers do reach 1. But it can take a surprisingly long time, even with small n. This is the Collatz sequence for n = 27:

27, 82, 41, 124, 62, 31, 94, 47, 142, 71, 214, 107, 322, 161, 484, 242, 121, 364, 182, 91, 274, 137, 412, 206, 103, 310, 155, 466, 233, 700, 350, 175, 526, 263, 790, 395, 1186, 593, 1780, 890, 445, 1336, 668, 334, 167, 502, 251, 754, 377, 1132, 566, 283, 850, 425, 1276, 638, 319, 958, 479, 1438, 719, 2158, 1079, 3238, 1619, 4858, 2429, 7288, 3644, 1822, 911, 2734, 1367, 4102, 2051, 6154, 3077, 9232, 4616, 2308, 1154, 577, 1732, 866, 433, 1300, 650, 325, 976, 488, 244, 122, 61, 184, 92, 46, 23, 70, 35, 106, 53, 160, 80, 40, 20, 10, 5, 16, 8, 4, 2, 1

Now some more functions for the y-compressed fall-bands, as I call them. If you use the sum of the factors * powers, you get this:

x = n <= 7422, f(i) -= factpowsum(f(i)) → f(i) < 2


The factpowsum(n) is the sum of the factors multiplied by their powers. For example, 37692 = 2^2 * 3^3 * 349, so factpowsum(4188) = 2*2 + 3*3 + 349*1 = 362. Here’s factpowsum for more n:

x = n <= 14822, f(i) -= factpowsum(f(i)) → f(i) < 2


You can also use the very simple function f(i) -= 1, that is, compress the numbers from n to 1 into the y-gap. But if you do that, you’ll get a completely filled screen:

x = n <= 3722, f(i) -= 1 → f(i) = 0


So you can adjust the color of a pixel according to how many times it’s written to:

x = n <= 1862, f(i) -= 1 → f(i) = 0 (color-adjust)


The patterns in the colors are artifacts of the limited resolution of the screen, so I call these patterns strartifacts = strata + artifacts. Here’s another example:

x = n <= 3722, f(i) -= 1 → f(i) = 0 (color-adjust)


Or adjust the greytone of the pixel:

x = n <= 3722, f(i) -= 1 → f(i) = 0 (greytone-adjust)


And so on (in all cases, you can click for a larger image):

x = n <= 1862, f(i) -= blockmul(f(i)) (multiply run-lengths of same digits) → f(i) < 2


x is triangular(n) = 3 to 1734453, y is 1 < triangular numbers <= n


x = n <= , f(i) -= 1 → f(i) < 2


x = n <= 7442, f(i) -= 1 → f(i) < 2


x = n <= 1862, f(i) -= leaddig(f(i)) → f(i) < 2 # 1


x = n <= , f(i) -= leaddig(f(i)) → f(i) < 2 # 2


x = n <= , f(i) -= trailingdigit(f(i)) + 1 → f(i) < 2


x = n <= , f(i) -= trailingdigit(f(i) in base 5) + 3 → f(i) < 2


for triangular(n) = 3 to 6928503, f(i) -= primes → f(i) < 2



x = n <= 1862, f(i) -= blockmul(f(i) in base 5) (multiply run-lengths of same digits) → f(i) < 2


x = n <= 1862, f(i) -= blockmul(f(i) in base 2) → f(i) < 2


x = n <= 1862, f(i) -= digsum(f(i)) → f(i) < 2


x = n <= 3722, f(i) -= func(x = 1/4 → x < 0, x(1) = 4) → f(i) < 2


x = n <= 932, f(i) -= func(x -= 3/x → x < 0, x(1) = 6) → f(i) < 2


Sieve and Let Spi’

What is VDSP? Inter alia, it’s the complicated consonant-cluster you get when you carefully pronounce the phrase “sieved spiral”. And here is a sieved spiral:

An Ulam Spiral of primes represented on a square grid


The pattern above is called an Ulam spiral (OO-lam) after its inventor, the Polish-Jewish mathematician Stanisław Ulam (1909-84). The white squares represent the prime numbers as you spiral counter-clockwise on a square grid — the little boot or reversed-L in the middle is the only time that filled squares are in direct contact, because it includes square #2, the only even prime. #2 is the heel of the boot, with #3 as the shaft and #11 as the toe.

But the Ulam spiral could also be called a sieved spiral, because you can build it by using the Sieve of Erastosthenes, whose invention is attributed to the Greek scholar Eratosthenes of Cyrene (c. 276–c. 194 BC). Create a list of whole numbers skipping 1. Then choose the first number on the list, which is 2. Cross out every higher number that’s divisible by 2. Then choose the next number that isn’t crossed out. It’ll be 3. Cross out every higher number that’s divisible by 3. Then choose the next available number, 5, and cross out all higher numbers divisible by 5. When you’ve crossed out everything you can, you’ll be left with just prime numbers. Here’s an animation of the Sieve from Wikipedia:

Animated Sieve of Erastosthenes from Wikipedia


Now we can sieve-and-let-spi’, as it were. First create a square grid with white squares. Choose the square in the middle as #1 and fill it it. Then choose white square to the right of #1 and call it #2. Then spiral outwards counter-clockwise filling with black all squares whose count is divisible by 2. Then do that for squares #3, #5, #7, #11 and so on. In the end, the only white squares on the grid will be the primes. And you’ll have a sieved Ulam spiral:

Sieving a spiral — creating the Ulam spiral using the Sieve of Eratosthenes


You can also sieve and let spi’ in reverse, blacking the squares using primes from higher to lowest. With this method, the sieved spiral looks like this:

Sieving a spiral — creating the Ulam spiral using the Sieve of Eratosthenes (higher primes first)

Faux-Fib Funcs for Phiday

Today isn’t Friday, let alone Phriday. But it is Phiday, that is, it’s a date when the digits of the day of the month, the 23rd, reproduce two successive terms in the famous Fibonacci sequence:

1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418, 317811, 514229, 832040, 1346269, 2178309, 3524578, 5702887, 9227465, 14930352, 24157817, 39088169, 63245986, 102334155,…

The rule for the Fibonacci sequence is very simple. If n(i) represents the i-th term of the sequence, n(i) = n(i-1) + n(i-2). So 8, the sixth term, equals the sum of 3 and 5, the fourth and fifth terms, respectively. Dividing successive terms in the sequence, n(i)/n(i-1), gives you closer and closer approximations to a famous constant called the golden ratio or phi or φ, which equals 1.6180339887498948482045868343656381177203091798… So the Phidays in a month are the 11th, the 12th and the 23rd (except in other bases, where you can get 112 in base 3 = 14 in base 10 and 123 in b4 = 27 in b10). Obviously, you can try variants on the Fibonacci sequence. Here’s one I hadn’t tried before, summing the reciprocals of the two previous terms (1/x is the reciprocal of x) and seeded with (1,1):

f(i) = 1/f(i-1) + 1/f(i-2)

A good mathematician might not be surprised by what happens when you apply that function, but I was. Here’s the sequence in action:

1/1 + 1/1 = 1 + 1 = 2
1/2 + 1/1 = 1/2 + 1 = 3/2 = 1.5
1/2 + 1/(3/2) = 1/2 + 2/3 = 7/6 = 1.1666666666666666…
1/(3/2) + 1/(7/6) = 2/3 + 6/7 = 32/21 = 1.5238095238095…
1/(7/6) + 1/(32/21) = 6/7 + 21/32 = 339/224 = 1.51339285714285…
1/(32/21) + 1/(339/224) = 14287/10848 = 1.3170169616519174…
1/(339/224) + 1/(14287/10848) = 6877760/4843293 = 1.4200586254…
1/(14287/10848) = 1/(6877760/4843293) = 143806067571/98262557120 = 1.4634879427713391…

And here’s the sequence as a list:

1, 1, 2, 1.5, 1.16666666…, 1.52380952…, 1.51339286…, 1.31701696…, 1.42005863…, 1.46348794…, 1.38749538…, 1.40402222…, 1.43296256…, 1.41009438…, 1.40702733…, 1.41989064…, 1.41499784…, 1.41099445…, 1.41543487…, 1.41521666…, 1.41310224…, 1.41426846…, 1.41474221…, 1.41392189…, 1.4140952…, 1.41441861…, 1.41417024…, 1.41413272…, 1.41427565…, 1.41422294…, 1.41417783…, 1.41422674…, 1.41422484…, 1.41420133…, 1.41421404…, 1.41421944…, 1.41421039…, 1.41421221…, 1.41421583…, 1.41421311…, 1.41421266…, 1.41421424…, 1.41421367…, 1.41421317…, 1.4142137…, 1.41421369…, 1.41421343…, 1.41421357…, 1.41421363…, 1.41421353…, 1.41421355…, 1.41421359…

The successive terms themselves (not the division of two successive terms) get closer and closer to another famous constant, 1.4142135623… = sqrt(2) = √2 = the square root of 2. That is, 2 = 1.4142135623…^2 = √2 * √2 = 2.

Now try this faux-Fibonacci function, which sums the reciprocals of three previous terms and is seeded with (1,1,1):

f(i) = 1/f(i-1) + 1/f(i-2) + 1/f(i-3)

1, 1, 1, 3, 2.33333333…, 1.76190476…, 1.32947233…, 1.74831712…, 1.8917243…, 1.85277499…, 1.64032782…, 1.67798344…, 1.74531862…, 1.77854896…, 1.73117082…, 1.71286113…, 1.72371834…, 1.74160342…, 1.73814321…, 1.7296513…, 1.72766133…, 1.73229495…, 1.73423726…, 1.73270842…, 1.73102242…, 1.73144679…, 1.7323761…, 1.73248681…, 1.73199851…, 1.73181453…, 1.73200171…, 1.73216337…, 1.73210842…, 1.73201045…, 1.73200754…, 1.73205948…, 1.73207579…, 1.73205401…, 1.73203852…, 1.73204551…, 1.7320556…, 1.73205507…, 1.73204955…, 1.73204821…, 1.73205067…, 1.73205214…, 1.73205128…, 1.73205025…, 1.73205039…, 1.73205097…, 1.73205108…, 1.7320508…, 1.73205066…

This time the terms are approximating √3 = 1.7320508075688772…

The pattern should be becoming clear. Here’s a faux-Fibonacci function summing the reciprocals of four previous terms and seeded with (1,1,1,1):

f(i) = 1/f(i-1) + 1/f(i-2) + 1/f(i-3) + 1/f(i-4) = f(i) = sum(j=1,4,1/f(i-j)) → 1, 1, 1, 1, 4, 3.25…, 2.55769231…, 1.94866975…, 1.46184034…, 1.89590957…, 2.11566858…, 2.19735496…, 2.13927698…, 1.9226554…, 1.91531809…, 1.96476075…, 2.01863597…, 2.04657233…, 2.0150802…, 1.98923188…, 1.98297066…, 1.99188053…, 2.00529681…, 2.00771794…, 2.00308927…, 1.99802424…, 1.99648053…, 1.99868265…, 2.00093427…, 2.00147194…, 2.0006098…, 1.99957598…, 1.99935245…, 1.99974785…, 2.00017861…, 2.00028636…, 2.00010876…, 1.99991963…, 1.99987668…, 1.99995216…, 2.0000357…, 2.00005396…, 2.00002038…, 1.99998445…, 1.99997638…, 1.99999121…, 2.0000069…, 2.00001027…, 2.00000381…, 1.99999695…, 1.99999552…, 1.99999836…, 2.00000134…, 2.00000196…

It’s approximating √4 = 2. Finally, a faux-Fibonacci function summing five previous terms and seeded with (1,1,1,1,1):

f(i) = sum(j=1,5,1/f(i-j)) → 1, 1, 1, 1, 1, 5, 4.2, 3.43809524…, 2.72895396…, 2.09539474…, 1.57263179…, 2.00850854…, 2.26829518…, 2.41829618…, 2.46536969…, 2.39375132…, 2.1756289…, 2.13738424…, 2.1643861…, 2.2128966…, 2.25917432…, 2.28405957…, 2.26223931…, 2.2364176…, 2.22153651…, 2.21977901…, 2.22763471…, 2.23872439…, 2.24336745…, 2.24198222…, 2.23787719…, 2.23423394…, 2.23290801…, 2.23407155…, 2.23592634…, 2.2371344…, 2.23728276…, 2.23667283…, 2.235919…, 2.23554916…, 2.23562462…, 2.23592649…, 2.23619761…, 2.23629263…, 2.2362179…, 2.23608413…, 2.23599221…, 2.23597907…, 2.23602277…, 2.23607674…, 2.23610497…, 2.2361008…, 2.23607908…, 2.23605908…, 2.23605182…

f(i) = sum(j=1,5,1/f(i-j)) → √5 = 2.2360679774997896964…

What’s going on? Why does a faux-Fibonacci function summing the reciprocals of n previous terms approximate √n? Simple. It’s because √n/n = 1/√n, so:

√2 = 1/√2 + 1/√2
√3 = 1/√3 + 1/√3 + 1/√3
√4 = 1/√4 + 1/√4 + 1/√4 + 1/√4
√5 = 1/√5 + 1/√5 + 1/√5 + 1/√5 + 1/√5
√6 = 1/√6 + 1/√6 + 1/√6 + 1/√6 + 1/√6 + 1/√6
√7 = 1/√7 + 1/√7 + 1/√7 + 1/√7 + 1/√7 + 1/√7 + 1/√7

Now try a variant of this variant on the standard Fibonacci function. Rather than summing the reciprocals of n previous terms, that is, adding all the reciprocals, you can try adding some, subtracting others and leaving others out. When I played with add-subtract-ignore, I had another surprise. Consider the faux-Fibonacci function using four terms where you add f(i-4), subtract f(i-3) and f(i-2), and neither add nor subtract f(i-1). If it’s seeded with (1,1,1,1), it behaves like this (note that subtracting a negative number is the same as adding its positive form):

f(i) = 1/f(i-4) – 1/f(i-3) – 1/f(i-2) = f(i) = -1/f(i-2) – 1/f(i-3) + 1/f(i-4)

1, 1, 1, 1, -1, -1, 1, 3, -1, -2.33333333…, 1.66666667…, 1.76190476…, -1.17142857…, -1.596139…, 0.886090969…, 2.04773796…, -1.35569898…, -2.24340789…, 1.37783544…, 1.67172102…, -1.01765253…, -1.76971243…, 1.11024382…, 2.14590316…, -1.31829317…, -1.93177087…, 1.19325541…, 1.7422206…, -1.07894042…, -1.92968341…, 1.19089866…, 2.01903508…, -1.24831753…, -1.85320783…, 1.14549415…, 1.83596921…, -1.13445903…, -1.95726202…, 1.20979165…, 1.93706664…, -1.19714822…, -1.85375091…, 1.14566257…, 1.89100976…, -1.16872901…, -1.94112216…, 1.19966969…, 1.89961427…, -1.17402719…, -1.87515137…, 1.15890915…, 1.91148197…, -1.18135916…, -1.91932498…, 1.18620874…, 1.89065342…, -1.16848806…, -1.89295612…, 1.16991105…, 1.91299871…, -1.18229835…, -1.90577961…, 1.17783653…, 1.89326935…, -1.1701048…, -1.90192076…, 1.17545169…, 1.90859542…, -1.17957683…, -1.90046656…, 1.17455293…, 1.89789374…, -1.17296284…, -1.90447424…, 1.17702981…, 1.90452112…, -1.17705878…, -1.89974183…, 1.17410502…, 1.90102893…, -1.17490049…, -1.9041308…, 1.17681755…, 1.90234084…, -1.1757113…, -1.90059155…, 1.17463018…, 1.90236908…, -1.17572875…, -1.90314411…, 1.17620774…, 1.90164296…, -1.17527998…, -1.9014973…, 1.17518996…, 1.90262351…, -1.17588599…, -1.90241767…, 1.17575878…, 1.90165956…, -1.17529024…, -1.902018…, 1.17551177…, 1.90246751…

The function cycles through approximations of four constants consisting of successive pairs that are identical except for their sign (positive and negative). When you square those constants, you get this (multiplying two negative numbers is the same as multiplying their positive forms):

+1.1755705045849462583374119093…^2 = 1.3819660112501051517954131656…
+1.9021130325903071442328786668…^2 = 3.6180339887498948482045868343…
-1.1755705045849462583374119093…^2 = 1.3819660112501051517954131656…
-1.9021130325903071442328786668…^2 = 3.6180339887498948482045868343…

I was surprised to see that φ had appeared:

3.6180339887498948482045868344… = 2 + φ = 1 + φ^2
1.3819660112501051517954131656… = 1 + (φ-1)^2 = 1 + (1/φ)^2


Elsewhere Other-Accessible…

• Friday is Φday — a first look at Phiday

Formulas Focal to the Flesh

Here’s an interesting formula:

fr(1) = 1/2; mx = 3
fr(i) = fr(i-1) + 1/fr(i-1)
if fr(i) > mx, fr(i) = fr(i) – mx

Early terms look like this:

0.5, 2.5, 2.9, 3.244827586…, 4.329334628…, 2.081590666…, 2.561992513…, 2.952313716…, 3.291031107…, 3.727089920…, 2.102435627…, 2.578074447…, 2.965960841…, 3.303119709…, 3.602146368…, 2.262872154…, 2.704788415…, 3.074503101…, 13.49676325…, 10.59203071…, 7.723747777…, 4.935444092…, 2.452121378…, 2.859931533…, 3.209590254…, 4.980804482…, 2.485649867…, 2.887959143…, 3.234224430…, 4.503633905…, 2.168689406…

Can you see any patterns emerging? I’d guess not. And I’d guess a thousand more terms wouldn’t help you see any better. It’s hard for humans to see patterns in a jumble of numbers. Our eyes don’t work as well on numbers as on shapes. That’s why you can make that formula focal to the flesh, as it were, by plotting the numbers on a graph. Or part of the numbers, anyway. Suppose you take the fractional parts of each pair of terms and use them to map (x,y) on a FractL (my name for a graph whose arms run from 0 to 1). For example, the terms 4.935444092… and 2.452121378… would yield x = 0.935444092… and y = 0.452121378… (or vice versa). The resultant graph makes the formula focal to the flesh. And it’s replete with patterns:

fr(i)+=1/fr(i-1); if fr(i)>3, fr(i)-=3; x = frac(fr(i)), y = frac(fr(i+1))


I can’t explain the patterns and they may arise from limited precision in the decimal digits. But I like them however they arise. The graph doesn’t change when mx = 4 (although it creates the lines in a different order):

if fr(i)>4, fr(i)-=4


But it does change when mx = 4/3. The lines almost vanish, except for a tiny comet-like mark towards the upper right-hand corner:

if fr(i)>4/3, fr(i)-=4/3


When mx = 7/2, the graph of mx = 3|4 is back in a slightly different form:

if fr(i)>7/2, fr(i)-=7/2


And again with 7/3:

if fr(i)>7/3, fr(i)-=7/3


There’s a big change with 7/4, Most of the lines disappear:

if fr(i)>7/4, fr(i)-=7/4


And only the main lines appear with 9/5:

if fr(i)>9/5, fr(i)-=9/5


And so on till you try fr -= 2/f, as noted below:

if fr(i)>11/5, fr(i)-=11/5


if fr(i)>11/6, fr(i)-=11/6


if fr(i)>15/8, fr(i)-=15/8


if fr(i)>29/15, fr(i)-=29/15


Now try fr += 2/fr and fr += 3/fr. This is what happens:

fr += 2/fr; if fr(i)>3, fr(i)-=3


fr += 2/fr; if fr(i)>8/3, fr(i)-=8/3


fr += 2/fr; if fr(i)>11/4, fr(i)-=11/4


fr += 3/fr; if fr(i)>6, fr(i)-=6


And what about these graphs?




They’re created by seeding a sum, s, with a fraction, then adding more fractions < 1 whose numerators = 1,2,3… and whose denominators are the prime numbers 1, s -= 1. When s > 1, s -= 1. Then you take the fractional parts of s(i) and s(i+1) and graph (x,y) as above.


Post-Performative Post-Scriptum

The title of this post refers to Morbid Angel’s Formulas Fatal to the Flesh (1998). I’ve never heard it, but I like Morbid Angel’s alphabetically alliterative album-titles.

Fibonacci Friday Factors

Today’s a Phiday Friday or Φiday Friday or Φriday, so let’s have some more Fibonacci Fun. Here is the famous Fibonacci sequence, where each number (after seeding with “0, 1”) is formed by adding the previous two numbers:

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418, 317811, 514229, 832040, 1346269, 2178309, 3524578, 5702887, 9227465, 14930352, 24157817, 39088169, 63245986, 102334155, … — A000045 at the Online Encyclopedia of Integer Sequences (OEIS)

It’s obvious that the numbers get bigger for ever and that no number repeats except 1. But what happens to the final digit of the Fibonacci numbers, as underlined here?:

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418, 317811, 514229, 832040, …

If you think about it, you’ll realize that the final digit has to repeat. Look for the “0, 1, 1” re-appearing:

0, 1, 1, 2, 3, 5, 8, 3, 1, 4, 5, 9, 4, 3, 7, 0, 7, 7, 4, 1, 5, 6, 1, 7, 8, 5, 3, 8, 1, 9, 0, 9, 9, 8, 7, 5, 2, 7, 9, 6, 5, 1, 6, 7, 3, 0, 3, 3, 6, 9, 5, 4, 9, 3, 2, 5, 7, 2, 9, 1, 0, 1, 1, 2, 3, 5, 8, 3, 1, 4, 5, 9, 4, 3, 7, 0, 7, 7, 4, 1, 5, 6, 1, 7, 8, 5, 3, 8, 1, 9, 0, 9, 9, 8, 7, 5, 2, 7, 9, 6, 5, … — A003893 at the OEIS, “a(n) = Fibonacci(n) mod 10”

As you’ll see, all the numbers 0 to 9 appear in that sequence. But what about the final two digits of the Fibonacci sequence? Do all the numbers 0 to 99 appear before the sequence repeats?

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 44, 33, 77, 10, 87, 97, 84, 81, 65, 46, 11, 57, 68, 25, 93, 18, 11, 29, 40, 69, 9, 78, 87, 65, 52, 17, 69, 86, 55, 41, 96, 37, 33, 70, 3, 73, 76, 49, 25, 74, 99, 73, 72, 45, 17, 62, 79, 41, 20, 61, 81, 42, 23, 65, 88, 53, 41, 94, 35, 29, 64, … — A105471 at the OEIS, “a(n) = Fibonacci(n) mod 100”


And what about the the final three digits and the numbers 0 to 999?

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 597, 584, 181, 765, 946, 711, 657, 368, 25, 393, 418, 811, 229, 40, 269, 309, 578, 887, 465, 352, 817, 169, 986, 155, 141, 296, 437, 733, 170, 903, 73, 976, 49, 25, 74, 99, 173, 272 … — A248740 at the OEIS, “a(n) = Fibonacci(n) mod 1000”


In fact, some numbers do go missing as the final block of digits gets longer. But all that is based on the representation of the Fibonacci numbers in base 10. What about other bases? I had a look at that question and came up with some interesting patterns when I represented the final-block numbers on an Ulam-like spiral, where numbers are represented as squares on a spiral rotating counter-clockwise. This is the spiral for powers of 2 (the red square marks the center of the spiral and the number 1):

Spiral of final Fib-digits modulo 2^p


Fib-spiral mod 2^p (smaller scale)


Fib-spiral mod 2^p (smaller scale still)


What fraction of numbers are missing from the spiral? Watch this space. In the meantime, here’s the Fib-spiral for powers of 3:

Fib-spiral mod 3^p


It’s completely filled, because no numbers are missing (the red square marks “1” at the center of the spiral). What about powers of 4? Well, we’ve already seen that Fib-spiral, because all powers of 4 are also powers of 2:

Fib-spiral mod 4^p


The Fib-spiral for powers of 5 is the same as the Fib-spiral for powers of 3: it’s completely filled again. But the Fib-spiral for powers of 6 is interesting:

Fib-spiral mod 6^p


Fib-spiral mod 6^p (smaller scale)


Fib-spiral mod 6^p (smaller scale still)


And here are more Fib-spirals and more interesting patterns:

Fib-spiral mod 7^p


Fib-spiral mod 10^p — identical to the Fib-spiral for 2^p


Fib-spiral mod 11^p


Fib-spiral mod 11^p (smaller scale)


Fib-spiral mod 13^p


Fib-spiral mod 13^p (smaller scale)


Fib-spiral mod 17^p


Fib-spiral mod 17^p (smaller scale)


Fib-spiral mod 19^p


Fib-spiral mod 19^p (smaller scale)


Fib-spiral mod 41^p


Fib-spiral mod 41^p (smaller scale)


Fib-spiral mod 47^p


Elsewhere Other-Accessible…

• Friday is Φday — a first look at Phiday on Friday

Run Fun

I was looking at numbers where the digit-runs of n in one base, b1, represented the digits of n in another base, b2. To understand digit-runs, take the number 775555111 (in whatever base). The function digitrun(775555111) = 2,4,3, because reading 775555111 left-to-right you see two 7s, four 5s, three 1s. Here’s one pattern I found:

10000011111 in base 2 = 1055 in base 10. The digit runs of 10000011111 are 1,5,5 and 15530 = 105510 = 100000111112.
10000022222 in base 3 = 59291 in base 10. The digit runs of 10000022222 are again 1,5,5 and 155241 = 5929110 = 100000222223.
1000009999910 → 1,5,5 and 15599998 = 1000009999910

The pattern isn’t difficult to understand — what are 30+2 and 99998+2? — and it’s easy to prove that it applies to all standard bases. But I wondered how AI would go about the proof. Here’s the result:

For base b ≥ 2, let the largest digit be d = b − 1. Then

100000dddddb

has digit runs

1, 5, 5

so the run-length encoding is always

155.

The value of 155 is interpreted in base

b5 − 2,

because

155b5−2 = (b5−2)2 + 5(b5−2) + 5.

Thus

100000dddddb = 155b5−2.

Base b n = 100000(b−1)(b−1)(b−1)(b−1)(b−1)b Run Lengths Compressed Form Base-10 Value of n
2 100000111112 1,5,5 15530 1,055
3 100000222223 1,5,5 155241 59,291
4 100000333334 1,5,5 1551022 1,049,599
5 100000444445 1,5,5 1553123 9,765,624
6 100000555556 1,5,5 1557774 60,466,175
7 100000666667 1,5,5 15516805 282,475,248
8 100000777778 1,5,5 15532766 1,074,266,111
9 100000888889 1,5,5 15559047 3,486,270,320
10 1000009999910 1,5,5 15599998 10,000,099,999
11 100000AAAAA11 1,5,5 155161049 26,094,908,050
12 100000BBBBB12 1,5,5 155248830 62,191,972,031
13 100000CCCCC13 1,5,5 155371291 136,858,491,292
14 100000DDDDD14 1,5,5 155537822 281,793,968,543
15 100000EEEEE15 1,5,5 155759373 547,918,611,874
16 100000FFFFF16 1,5,5 1551048574 1,099,512,627,199
17 100000GGGGG17 1,5,5 1551419855 2,141,423,647,200
18 100000HHHHH18 1,5,5 1551889566 4,058,363,974,751
19 100000IIIII19 1,5,5 1552476097 7,502,570,010,432
20 100000JJJJJ20 1,5,5 1553199998 13,120,000,000,000

(Here A = 10, B = 11, …, J = 19.)

Proof for All b ≥ 2

The number

100000(b−1)(b−1)(b−1)(b−1)(b−1)b

has value

b10 + (b−1)(b4 + b3 + b2 + b + 1).

Since

b4 + b3 + b2 + b + 1 = (b5 − 1)/(b − 1),

this becomes

b10 + (b5 − 1) = b10 + b5 − 1.

Now let

B = b5 − 2.

Then

155B = B2 + 5B + 5.

Substituting B = b5 − 2:

(B2 + 5B + 5) = (b5−2)2 + 5(b5−2) + 5

= b10−4b5+4+5b5−10+5

= b10 + b5−1.

Hence

b10 + b5 − 1 = (b5 − 2)2+5(b5 − 2)+5

for every b ≥ 2.

Therefore,

100000(b−1)5b = 155b5−2.

This is exactly the pattern observed in bases 2 to 20, and it holds for all bases.

Partition Fission

Simple but seductive. That’s how I’d describe partitions. Except that they’re not so simple. There are hidden depths in the task of finding how many ways an integer can be expressed as the sum of smaller integers (and as the sum of itself). Here are the partitions of 4, for example:

4 = 1+3 = 2+2 = 1+1+2 = 1+1+1+1
4 (1) = 1+3 (2) = 2+2 (3) = 1+1+2 (4) = 1+1+1+1 (5), ∴ partcount(4) = 5

There are five partitions of 4, because an integer is counted as its own partition. Accordingly, partcount(4) = 5. But partcount(n) doesn’t return values in a predictable way:

partcount(1) = 1 ← 1
partcount(2) = 2 ← 2 = 1+1
partcount(3) = 3 ← 3 = 1+2 = 1+1+1
partcount(4) = 5 ← 4 = 1+3 = 2+2 = 1+1+2 = 1+1+1+1
partcount(5) = 7 ← 5 = 1+4 = 2+3 = 1+1+3 = 1+2+2 = 1+1+1+2 = 1+1+1+1+1
partcount(6) = 11 ← 6 = 1+5 = 2+4 = 3+3 = 1+1+4 = 1+2+3 = 2+2+2 = 1+1+1+3 = 1+1+2+2 = 1+1+1+1+2 = 1+1+1+1+1+1
partcount(7) = 15 ← 7 = 1+6 = 2+5 = 3+4 = 1+1+5 = 1+2+4 = 1+3+3 = 2+2+3 = 1+1+1+4 = 1+1+2+3 = 1+2+2+2 = 1+1+1+1+3 = 1+1+1+2+2 = 1+1+1+1+1+2 = 1+1+1+1+1+1+1
partcount(8) = 22 ← 8 = 1+7 = 2+6 = 3+5 = 4+4 = 1+1+6 = 1+2+5 = 1+3+4 = 2+2+4 = 2+3+3 = 1+1+1+5 = 1+1+2+4 = 1+1+3+3 = 1+2+2+3 = 2+2+2+2 = 1+1+1+1+4 = 1+1+1+2+3 = 1+1+2+2+2 = 1+1+1+1+1+3 = 1+1+1+1+2+2 = 1+1+1+1+1+1+2 = 1+1+1+1+1+1+1+1


1, 2, 3, 5, 7, 11, 15, 22, 30, 42, 56, 77, 101, 135, 176, 231, 297, 385, 490, 627, 792, 1002, 1255, 1575, 1958, 2436, 3010, 3718, 4565, 5604, 6842, 8349, 10143, 12310, 14883, 17977, 21637, 26015, 31185, 37338, 44583, 53174, 63261, 75175, 89134, 105558, 124754, 147273, 173525 — the number of partitions of n, A000041 at the Online Encyclopedia of Integer Sequences

And there are fractals — self-similarities at smaller and smaller scales — hidden in that simple arithmetic. Take the partitions of 8:

8 = 1+7 = 2+6 = 3+5 = 4+4 = 1+1+6 = 1+2+5 = 1+3+4 = 2+2+4 = 2+3+3 = 1+1+1+5 = 1+1+2+4 = 1+1+3+3 = 1+2+2+3 = 2+2+2+2 = 1+1+1+1+4 = 1+1+1+2+3 = 1+1+2+2+2 = 1+1+1+1+1+3 = 1+1+1+1+2+2 = 1+1+1+1+1+1+2 = 1+1+1+1+1+1+1+1 (c=22)

By definition, the sum of each partition of 8 is the same: 8. But the products — the result of multiplying the numbers of a partition — rise and fall wildly, hitting a maximum of 18 and a minimum of 1:

1.7 = 7
2.6 = 12
3.5 = 15
4.4 = 16
1.1.6 = 6
1.2.5 = 10
1.3.4 = 12
2.2.4 = 16
2.3.3 = 18
1.1.1.5 = 5
1.1.2.4 = 8
1.1.3.3 = 9
1.2.2.3 = 12
2.2.2.2 = 16
1.1.1.1.4 = 4
1.1.1.2.3 = 6
1.1.2.2.2 = 8
1.1.1.1.1.3 = 3
1.1.1.1.2.2 = 4
1.1.1.1.1.1.2 = 2
1.1.1.1.1.1.1.1 = 1

It’s interesting to ask when partitions(n) yield the biggest product (the answer is here). It’s also interesting to create graphs of prod(part(n)), the products of the partitions of n. You’ll see something I call partition fission. The graphs start to fissure into what look like fins or sails, and then each fin or sail starts to fissure too:

Graph for multiples of partitions(8) (partcount(8) = 22)


Graph for prod(part(9)) (partcount = 30)


prod(part(10)) (partcount = 42)


prod(part(11)) (partcount = 56)


prod(part(12)) (partcount = 77)


prod(part(13)) (partcount = 101)


prod(part(14)) (partcount = 135)


prod(part(15)) (partcount = 176)


prod(part(16)) (partcount = 231)


Those graphs are all on the same scale. The two graphs below have been adjusted to capture many more partitions and show the fractality coming into full flower:

prod(part(20)) (partcount = 627)


prod(part(28)) (partcount = 3718)


Finally, here’s an animated gif of the graphs for the partition-products of 8 to 16:

Animated gif for prod(part(8..16)) (animation at EZgif) (click for larger image)


Third Whirled Warp

Here’s a regular hexagon inside a regular triangle, that is, an equilateral triangle:

Regular hexagon inside regular triangle


Imagine that two points are moving around the perimeter of each polygon, with the hex-point moving half as fast as the tri-point (after adjustment for the incommensurate relative lengths of the perimeters). If you trace the midpoint of the twin spinning points, you get this shape:

v3v6, 1 : 1/2, pol


And if you adjust the midpoint path as though the triangle had been stretched into a circle, you get this shape:

v3v6, 1 : 1/2, circ, pol


Here’s the same when the ratio of speeds is 1/2 to 1/3, that is, 1 to 2/3:

v3v6, 1/2 : 1/3, circ, pol


Without the polygons, it looks like this:

v3v6, 1/2 : 1/3, circ


When the ratio of speeds if -1/3 to 2/3, that is, the tri-point is moving counter-clockwise around the triangle, you get this shape:

v3v6, -1/3 : 2/3, pol


When it’s stretched into a circle, you get this:

v3v6, -1/3 : 2/3, circ, pol


It looks like a moustache:

v3v6, -1/3 : 2/3, circ


Here are more midpoint shapes created with a hexagon inside a triangle:

v3v6, 2/2 : 3/3, circ


v3v6, -1/2 : 3/4, circ


v3v6, 1/4 : 1/5, circ


v3v6, -1/4 : 3/4, circ


v3v6, -1/4 : 4/5, circ


v3v6, 2/3 : 3/4, circ


v3v6, 2/3 : 3/5, circ


v3v6, 3/4 : 4/5, circ


v3v6, 3/4 : 4/5, circ


Now try aligning the nested hexagon like this, so that the sides of the hexagon coincide with the middle third of the sides of the triangle:

v3v6, side alignment


With two points moving in a ratio of 1/3 to 1/4, you get this midpoint shape:

v3v6, sided, 1/3 : 1/4, pol


Here it is without the polygons:

v3v6, sided, 1/3 : 1/4


Now try a regular octagon inside a square:

v4v8, 1/2 : 1/3, circ, pol


v4v8, 1/2 : 1/3, circ


v4v8, -1/3 : 3/4, circ


v4v8, 2/3 : 3/5, circ


Now place a triangle inside a hexagon:

v6v3, 1 : 1/4, pol


If you stretch the midpoint path according to perimeter of the triangle, you get this:

v6v3, 1 : 1/4, circ, pol


v6v3, 1 : 1/4, circ


The three stretching shapes remind me of hands in Egyptian art, like this image of King Tutankhamun and Queen Ankhesenamun:

Detail from the Golden Throne of Tutankhamnun


Here are more midpoint paths:

v6v3, 1 : -1/4, circ


v6v3, 1 : 1/2, circ


v6v3, 1 : 1/3, circ


v6v3, -1 : 1/3, circ


v6v3, -1 : 1/4, circ


v6v3, 1 : 1/5, circ


v6v3, 2/3 : 1/4, circ


Now try a square inside an octagon:

v8v4, 2/3 : 1/4, circ, pol


v8v4, 2/3 : 1/4, circ


v8v4, 2/5 : 1/6, circ


v8v4, 2/5 : 3/7, circ


v8v4, 4/5 : 3/7, circ


Elsewhere Other-Accessible…

• First Whirled Warp — an earlier look at this kind of geometry
• Second Whirled Warp — and another earlier look

The Hex Crystals

To coin a phrase: Never Mind the Bollocks — Here’s the Hex Crystals! And what is a hex crystal? It’s what I call a shape that’s created algorithmo inside a hexagon and looks like a crystal:

A hex crystal


Here are some more hex-crystals:




I came across hex-crystals when I was looking at an interesting little geometrical question. How does sum(vd), the sum of distances to the vertices of a square, vary from different points, (x,y), inside the square? Say the square is created inside a circle of radius = 500 units and centered on (x,y) = (0,0). When the point is at (0,0), the center of the square, sum(vd) is obviously 2000, because the four vertices all fall on the perimeter of the circle at 500 units from the center and 4 * 500 = 2000:
0

sum(vd) = 2000 = sum of distances to vertices from (0,0)


When is sum(vd) at a maximum? When the point is on one or another of the vertices, which are at (+/-354,+/-354) units in relation to the center at (0,0):

sum(vd) = 2414 = sum of distances to vertices from (354,-354)


More precisely, the sum is 2414.213562373… = 1000 * (√2 + 1) units and the vertices are at (+/-353.55339…, +/-353.55339…) units, as simple geometry dictates for a square inside a circle of radius 500. Accordingly, sum(vd) varies between exactly 2000 and 2414.213562373… as the point moves inside the square:

sum(vd) = 2165 from (132,256)


sum(vd) = 2182 from (-135,271)


sum(vd) = 2069 from (177,51)


I wondered what shapes appeared as one traced the route of a point jumping, say, 1/2 towards the vertices according to tests on sum(vd). For example, if the point starts at (0,0) at time t0) and sum(vd) at time ti has to be alternately greater and less than sum(vd) at ti-1 for successive jumps, you get this shape:

jump = 1/2, test = sum(vd,ti) >,< sum(vd,ti-1)


You can use the binary number 10bin to represent the test on sum(vd) at ti-1 and ti-1, i.e. the test at jump 1 is sum(vd,ti) > sum(vd,ti-1), at step 2 is sum(vd,ti) < sum(vd,ti-1), and so on. Using the same test and a jump of 1/3, you get this shape:

jump = 1/3, test = sum(vd,ti,10bin)


Now the shape is clearly a fractal. So are some of the other shapes I found by applying the same kind of tests to a point jumping inside a pentagon:

vertex = 5, jump = 55/144 = fib(10) / fib(12), test on sum(vd) = 10bin


v = 5, j = 55/144, test = 10010bin


v = 5, j = 55/144, test = 11000bin


When test = 10010bin, you read the binary number left-to-right and check for s1><s0,s2<s1,s3<s2,s4>s3,s5<s4. Then you apply the same tests to subsequent jumps, i.e., you return to the beginning of the binary number and read it left-to-right again. Now let’s apply similar tests to hexagons and create some hex-crystals:

v = 6, j = 1/2, test = 10bin


Various hex-crystals (animated gif courtesy EZgif)


I searched an array to calculate the possible routes, so the same test yielded different results depending on dp, the depth of the search. This is because tl, the length of the test, fits more or less well into dp by dp modulo tl, that is, by whether tl is a factor of dp. For example, when the test is 110 and tl = 3, you get this with dp = 9:

v = 6, j = 1/2, test = 110, dp = 9


And you get this when dp = 10 (i.e., dp = 9+1):

v = 6, j = 1/2, test = 110bin, dp = 10dec


Here are some more hex-crystals:

test = 1100bin


test = 1110bin


test = 10010bin


test = 11010bin


test = 11100bin


test = 101000, dp = 12


test = 101100bin


test = 111100bin


test = 111100, dp = 11


test = 1110010bin


test = 1111100bin


test = 10010110bin


test = 10011110bin


test = 11000110bin


test = 11001110bin


test = 11010110bin


test = 11100110bin


test = 11101000bin


test = 11110010bin


test = 100101000bin


test = 100111110bin


test = 110011110bin


test = 110111000bin


test = 1001101010bin


test = 1001111000bin


test = 1001111010bin


test = 1010011110bin


test = 1011101110bin


test = 1101010000bin


test = 1110001110bin


test = 1110101000bin


test = 1110101010bin


test = 1111100010bin


j = 1/3, test = 1 (i.e., for all jumps sum(vd) at ti > sum(vd) at ti-1, center point


j = 2/3, test = 11100bin


j = 2/5, test = 10010bin


Finally, here are some hex-crystals based on a test of sorted distances from (x,y), i.e. how the vertices rank by distance from (x,y):




Worms in Terms of Perms

If you go back far enough, we’re all worms. All us animals, that is. But in a subtler sense, all life is vermiform — animals, plants, fungi, bacteria. DNA is a kind of worm, a string of chemicals encoding the recipe for an animal, plant, fungus or bacterium. And the worms of DNA can be turned into numbers, just as some numbers can be turned into worms:

3/7 = 0·0.428571428571428571428571…
154/183 = 0.841530054644808743169398907…
√2 = 1.414213562373095048801688…
π = 3.1415926535897932384626433…

Those are decimals, but there’s another kind of worm for such numbers. It’s called a continued fraction:

contfrac(3/7) = [0,2,3]
contfrac(154/183) = [0,1,5,3,4,2]
contfrac(√2) = [1,2,2,2,2,2…]
contfrac(π) = [3, 7, 15, 1, 292, 1, 1, 1, 2, 1, 3, 1, 14, 2, 1, 1, 2, 2, 2, 2, 1, 84, 2, 1, 1, 15…]

Extracting and enacting continued fractions is very simple. Here’s the extracting:

3/7 → 1/(3/7) = 7/3 = 2+1/3 – 2 = 1/3 → 1(1/3) = 3, ∴ contfrac(3/7) = [0,2,3]
154/183 → 1/(154/183) = 183/154 = 1 + 29/154 – 1 = 29/154 → 1/(29/154) = 154/29 = 5 + 9/29 – 5 = 9/29 → 1/(9/29) = 29/9 = 3 + 2/9 – 3 = 2/9 → 1/(2/9) = 9/2 = 4 + 1/2 – 4 = 1/2 → 1/(1/2) = 2 – 2 = 0, ∴ contfrac(154/183) = [0,1,5,3,4,2]

And here’s the enacting:

[0,2,3] → 3 → 1/3 → 1/3 + 2 = 7/3 → 1/(7/3) = 3/7
[0,1,5,3,4,2] → 2 → 1/2 → 1/2 + 4 = 9/2 → 2/9 + 3 = 29/9 → 9/29 + 5 = 154/29 → 29/154 + 1 = 183/154 → 1/(183/154) = 154/183

Once you’ve got the worm of a continued fraction, you can perm the worm, as it were, generating different fractions like this (I’m dropping the initial [0,…] of the contfracs):

[2,3,4] = contfrac(13/30)
[2,4,3] → 13/29
[3,2,4] → 09/31
[3,4,2] → 09/29
[4,2,3] → 07/31
[4,3,2] → 07/30

Reversing a continued fraction is a kind of permutation, so the fractal below represents one kind of worms in terms of perms:

Variant of a limestone fractal or gryke fractal


I call that graph a fract-L, because it’s shaped like an L and the x axis represents the simplified fractions 1/2, 1/3, 2/3, 1/4, 3/4, 1/5, 2/5, 3/5…, while the y axis represents the fractions you get by reversing the continued fractions of 1/2, 1/3, 2/3…:

contfrac(1/2) = [2] → 1/2
contfrac(1/3) = [3] → 1/3
contfrac(2/3) = [1,2] → 1/3
contfrac(1/4) = [4] → 1/4
contfrac(3/4) = [1,3] → 1/4
contfrac(1/5) = [5] → 1/5
contfrac(2/5) = [2,2] → 2/5
contfrac(3/5) = [1,1,2] → 2/5
contfrac(4/5) = [1,4] → 1/5
contfrac(1/6) = [6] → 1/6
contfrac(5/6) = [1,5] → 1/6
contfrac(1/7) = [7] → 1/7
contfrac(2/7) = [3,2] → 3/7
contfrac(3/7) = [2,3] → 2/7
contfrac(4/7) = [1,1,3] → 2/7
contfrac(5/7) = [1,2,2] → 3/7
contfrac(6/7) = [1,6] → 1/7
contfrac(1/8) = [8] → 1/8
contfrac(3/8) = [2,1,2] → 3/8
contfrac(5/8) = [1,1,1,2] → 3/8
contfrac(7/8) = [1,7] → 1/8
contfrac(1/9) = [9] → 1/9
contfrac(2/9) = [4,2] → 4/9
contfrac(4/9) = [2,4] → 2/9
contfrac(5/9) = [1,1,4] → 2/9
contfrac(7/9) = [1,3,2] → 4/9
contfrac(8/9) = [1,8] → 1/9
[…]

If you perm the worm in other ways, you get other shapes on the fract-L. I looked at continued fractions of fixed length, 4, 5 and 6, and permed them using one of the permutations of [1,2,3,4], [1,2,3,4,5] and [1,2,3,4,5,6]. Here’s a graph for fractions, a/b, and permed fractions, perm(a/b), where length(contfrac(a/b)) = 4:

x = a/b when length(contfrac(a/b)) = 4, y = fraction from contfrac(a/b) permed with [1,3,2,4]


The x axis represents simplified fractions, a/b, when len(cf(a/b)) = 4. The y axis represents the fractions found by applying the perm [1,3,2,4] to contfrac(a/b). That is, the first number of the contfrac stays where it is, the third number moves to position 2, the second number moves to position 3 and the fourth number stays where it is. In short, you simply swap the middle two numbers of contfrac(a/b). Here’s an example:

contfrac(9/43) = [4,1,3,2] → [4,3,1,2] → 11/47, because contfrac(11/47) = [4,3,1,2]

Here are more fract-Ls representing worms in terms of perms:

fract-L for contfrac(a/b) permed by [2,1,3,4]


fract-L for contfrac(a/b) permed by [3,2,1,4]


fract-L for contfrac(a/b) permed by [1,4,2,3,5] (i.e. a/b where len(contfrac(a/b)) = 5)


fract-L for contfrac(a/b) permed by [1,5,3,4,2]


fract-L for contfrac(a/b) permed by [2,1,4,3,5]


fract-L for contfrac(a/b) permed by [3,4,1,2,5]


fract-L for contfrac(a/b) permed by [4,2,3,1,5]


fract-L for contfrac(a/b) permed by [4,2,5,3,1]


fract-L for contfrac(a/b) permed by [4,3,2,1,5]


fract-L for contfrac(a/b) permed by [5,3,4,2,1]


fract-L for contfrac(a/b) permed by [2,1,4,3,5,6] (i.e. a/b where len(contfrac(a/b)) = 6)


fract-L for contfrac(a/b) permed by [2,1,5,4,3,6]


fract-L for contfrac(a/b) permed by [3,2,1,4,5,6]


fract-L for contfrac(a/b) permed by [3,2,1,5,4,6]


fract-L for contfrac(a/b) permed by [3,5,1,4,2,6]


fract-L for contfrac(a/b) permed by [4,2,5,1,3,6]


fract-L for contfrac(a/b) permed by [4,3,2,1,5,6]


fract-L for contfrac(a/b) permed by [4,5,2,3,1,6]


fract-L for contfrac(a/b) permed by [1,3,2,6,5,4,7] (i.e. a/b where len(contfrac(a/b)) = 7)


fract-L for contfrac(a/b) permed by [1,5,2,6,3,4,7]


fract-L for contfrac(a/b) permed by [5,6,3,7,4,1,2]


fract-L for contfrac(a/b) permed by [6,2,3,5,4,1,7]


fract-L for contfrac(a/b) permed by [6,2,5,4,7,3,1]


Post-Performative Post-Scriptum

Much as I hate the phrase “in terms of”, I was happy to use it in the title of this post. After all, it isn’t ugly but assonant there. And it began life in mathematics, where it still has its proper meaning rather than being pretentious and prolix:

How did this complex preposition come into being? The OED [Oxford English Dictionary] reveals that it has been in use since the mid-18c. as a mathematical expression “said of a series…stated in terms involving some particular (my emphasis) quantity”, and illustrates this technical usage by citing examples from the work of Herbert Spencer (1862), J. F. W. Herschel (1866), and other writers. From this technical use came at first a trickle and, after the 1940s, a flood of imitative uses by non-mathematicians. — “Terminal Trinity”


Elsewhere Other-Engageable

• A Fracteasel on a Fract-L — an earlier look at continued fractions and fractal fract-Ls