Ulam spiral – nontrivial neighbors of a generic element (HP12C)

01252018, 05:17 PM
(This post was last modified: 01252018 11:37 PM by Gerson W. Barbosa.)
Post: #1




Ulam spiral – nontrivial neighbors of a generic element (HP12C)
Ulam spiral
64 63 62 61 60 59 58 57 37 36 35 34 33 32 31 56 38 17 16 15 14 13 30 55 39 18 05 04 03 12 29 54 40 19 06 01 02 11 28 53 41 20 07 08 09 10 27 52 42 21 22 23 24 25 26 51 43 44 45 46 47 48 49 50 Code:
Examples: 22 R/S > 45 x<>y > 7 31 R/S > 56 x<>y > 58 n1 = 5 + n + 2*INT(√(4*n  2)) (This formula from Don Shepherd’s recent article on the same subject). For elements on the main diagonals, where either (n  1) or (4*n  3) are perfect squares, n2 = n1  2 Otherwise n2 = 2*n + 8  n1 The central element, 1, has three nontrivial neighbors: 4, 6 and 8. The program will return 6 and 8. Codeoptimization is left as an exercise. Edited to fix a typo in step 04. 

01252018, 05:27 PM
(This post was last modified: 01252018 05:50 PM by Don Shepherd.)
Post: #2




RE: Ulam spiral – nontrivial neighbors of a generic element (HP12C)
Thanks Gerson. Yes, I knew my programs get a sqrt(neg number) error for n=1.


01262018, 05:25 AM
Post: #3




RE: Ulam spiral – nontrivial neighbors of a generic element (HP12C)
I just noticed something interesting. The two nontrivial neighbors of an odd number are always even numbers, and the two nontrivial neighbors of an even number are always odd numbers. The same is true of trivial neighbors, but that I would naturally expect. I suppose this is due to the natural structure of the spiral.


01272018, 03:26 AM
(This post was last modified: 01272018 04:09 AM by Gerson W. Barbosa.)
Post: #4




RE: Ulam spiral – nontrivial neighbors of a generic element (HP12C)
(01252018 05:27 PM)Don Shepherd Wrote: Yes, I knew my programs get a sqrt(neg number) error for n=1. Don, I did notice that error, but it was not my intention to fix it. I was just interested in knowing the formulas you have used. After analyzing the first few lines of your 12C program and getting the formula for the first nontrivial neighbor I got lazy and rather than trying to figure out the formula for the second one I decided to find a relationship between them. That was not hard, but probably a straightforward conversion of your program to RPL would have yielded better byte counts. Each of the following is 117.5 bytes long: « DUP 5 + OVER 4 * 2  √ IP DUP + + SWAP DUP 4 * 3  √ FP OVER 1  √ FP * NOT { DROP DUP 2  } { 4 + DUP + OVER  } IFTE » « DUP 5 + OVER 4 * 2  √ IP DUP + + 2 OVER  ROT DUP 4 * 3  √ FP OVER 1  √ FP * NOT { DROP NEG } { 3 + DUP + + } IFTE » « DUP 5 + OVER 4 * 2  √ IP DUP + + DUP 2  ROT DUP 4 * 3  √ FP OVER 1  √ FP * NOT { DROP } { 3 + DUP + SWAP  } IFTE » 

01272018, 08:06 AM
Post: #5




RE: Ulam spiral – nontrivial neighbors of a generic element (HP12C)
(01272018 03:26 AM)Gerson W. Barbosa Wrote:Thanks Gerson.(01252018 05:27 PM)Don Shepherd Wrote: Yes, I knew my programs get a sqrt(neg number) error for n=1. I continue to be amazed at what can be accomplished with RPL. You have my deepest respect. Don 

« Next Oldest  Next Newest »

User(s) browsing this thread: 1 Guest(s)