Stern Diatomic Calculator

Enumerates all rationals

CalculatorsFreeNo Signup
4.4(405 reviews)
All Tools

Loading tool...

About Stern Diatomic Calculator

A Stern diatomic sequence calculator computing s(n) via the recurrence s(2n)=s(n), s(2n+1)=s(n)+s(n+1). Consecutive ratios s(n)/s(n+1) enumerate all positive rationals exactly once. Connected to Calkin-Wilf tree. Client-side.

Stern Diatomic Calculator Features

  • Sequence
  • Rational enumeration
  • Calkin-Wilf
  • Binary connection
  • Fusc
Stern's diatomic sequence: s(0)=0, s(1)=1, s(2n)=s(n), s(2n+1)=s(n)+s(n+1). First terms: 0,1,1,2,1,3,2,3,1,4,3,5,2,5,3,4... The consecutive ratios s(n)/s(n+1) for n≥1 list every positive rational exactly once in lowest terms!

How to Use

Enter n:

  • s(n): The n-th term
  • Sequence: First n terms
  • Rationals: s(n)/s(n+1)

Enumerating Rationals

s(1)/s(2)=1/1, s(2)/s(3)=1/2, s(3)/s(4)=2/1, s(4)/s(5)=1/3, s(5)/s(6)=3/2, ... This is the Calkin-Wilf enumeration. Every positive rational appears exactly once, already in lowest terms.

Binary Connection

s(n) counts the number of ways to write n in 'hyperbinary': representations using powers of 2 where each power is used at most twice. Also: s(n) = number of odd binomial coefficients in row n−1 of Pascal's triangle (mod 2 connection).

Step-by-Step Instructions

  1. 1Enter n.
  2. 2View s(n).
  3. 3See sequence.
  4. 4Explore rationals.
  5. 5Check binary.

Stern Diatomic Calculator — Frequently Asked Questions

How does it enumerate all rationals?+

The Calkin-Wilf tree: root is 1/1. Each node a/b has children a/(a+b) and (a+b)/b. Reading level-by-level gives s(n)/s(n+1). Every positive rational appears exactly once in lowest terms. This was proven by Calkin and Wilf in 2000.

What is the fusc function?+

fusc(n) = s(n) is sometimes called the 'fusc' function (Dijkstra). It satisfies: fusc(0)=0, fusc(1)=1, fusc(2n)=fusc(n), fusc(2n+1)=fusc(n)+fusc(n+1). Dijkstra used it as an example of elegant recursive programming.

What is max(s(n)) for n < 2^k?+

The maximum of s(n) for n < 2^k is s(2^k−1) = the k-th Fibonacci number F(k). The sequence has a fractal-like structure with peaks at positions 2^k−1.

Share this tool: