[squeak-dev] Ulam spiral
Frank Shearar
frank.shearar at gmail.com
Mon Oct 1 19:06:46 UTC 2012
On 1 October 2012 16:55, Bert Freudenberg <bert at freudenbergs.de> wrote:
> Frank posted some nice code on his blog:
> http://www.lshift.net/blog/2012/09/27/decomposing-the-ulam-spiral
>
> Couldn't help myself coming up with a simpler (admittedly less efficient) version:
>
> Display restoreAfter: [
> size := 400 squared.
> primes := (Integer primesUpTo: size) asSet.
> step := 1.
> length := 1.
> pen := Pen new turn: 90.
> [step < size] whileTrue: [
> 2 timesRepeat: [
> length timesRepeat: [
> pen fillColor: ((primes includes: step)
> ifTrue: [Color black]
> ifFalse: [Color white]).
> pen go: 1.
> step := step + 1].
> pen turn: -90].
> length := length + 1]].
I bow before your image-fu. The main thing I wanted to show was the
decomposition of the problem into various bits. Also, I hadn't
considered the idea of wrapping up the number line before, so needed
to share that tiny moment of mathematical insight.
For origin-centred parts of the Ulam spiral, you might well have
something more efficient. Splitting up the problem into a (random
access!) traversal only comes into its own when you can't use the
intuition of a turtle going round and round in a square spiral. (But I
did use that intuition in figuring out the offsets from the corners.)
frank
> - Bert -
>
>
>
More information about the Squeak-dev
mailing list
|