Public
Edited
Feb 1
Insert cell
Insert cell
Insert cell
equationView(multOptions.m, (x) => multOptions.a * x + multOptions.b, multOptions.annotations)
Insert cell
Insert cell
Insert cell
equationView(quadraticOptions.m, (x) => quadraticOptions.a_2 * x * x + quadraticOptions.a_1 * x + quadraticOptions.a_0, quadraticOptions.annotations)
Insert cell
function equationView(modulus, func, annotate) {
const arrows = range(0, modulus).map((n) => ([n, func(n) % modulus]));
// const highlights = arrows.filter(([start, end]) => end == 0).map(([start, end]) => start);
const highlights = [];
return clockDiagram(modulus, arrows, highlights, annotate, 0.2)
}
Insert cell
multiplicationArrows = range(0, multOptions.m).map((n) => ([n, (n * multOptions.a) % multOptions.m]));
Insert cell
Insert cell
import {range} from "9bfdb030ee8ebf1f"
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more