en.wikipedia.org/wiki/recam%c3%a1n%27s_sequence
youtube.com/watch?v=fgc5tdiit9u
Recamán's sequence revisited
Recamán's sequence ◯◯◯◯◯ (variation)
Log in to post a comment.
// You can find the Turtle API reference here: https://turtletoy.net/syntax const iterations = 100; //min=1 max=1000 step=1 const scale=1.9; //min=.2 max=30 step=.1 const offsetX=-91; //min=-200 max=200 step=1 const offsetY=94; //min=-200 max=200 step=1 const spin=180; //min=0 max=359 step=1 Canvas.setpenopacity(1); // Global code will be evaluated once. const turtle = new Turtle(); turtle.jump(offsetX, offsetY); turtle.seth(225); const recamanIterator = recaman(); let lastValue = recamanIterator.next().value; // The walk function will be called until it returns false. function walk(i) { const thisValue = recamanIterator.next().value; const diff = thisValue - lastValue; turtle.circle(diff * (i%2==0?1:-1) / scale, spin); lastValue = thisValue; return i < iterations - 1; } function* recaman() { const sequence = [0]; for(let i = 1; true; i++) { yield sequence[i - 1]; [sequence[i-1]-i].forEach(next => sequence.push(next > 0 && !sequence.includes(next)? next: sequence[i-1]+i)); } }