From: Edgardo Hames Date: 2005-04-11T14:25:24+09:00 Subject: Re: Translating A Pattern of Data Into Equation, and ultimately code On Apr 10, 2005 8:45 PM, Zach Dennis wrote: > I have the following table of data, and I am looking to create an > equation to recreate the table. If anyone finds this sort of thing fun, > or has a online resource or a good book that helps explaining these > types of math concepts, please take a stab at it or post any info that > might aide me in my discovery! I've been trying the past several hours > and this sort of thing isn't my strong suit...and i'm stuck! > > I am first looking to understand how-to make the pattern of data into a > actual math equation...then from there I'd like to write ruby code for > the equation. > > Here is the sample data in a table: > - rows represent a different character (as labeled) > - columns represent the position of the character > (examples represent data in decimal notation, not octal/hex) > example: "aaaa" would become 000 003 002 005 > example: "zach" would become 027 003 000 012 > > 1 2 3 4 5 6 (etc......) > ---------------------------------------------------- > a 1 | 0 3 2 5 4 7 > b 2 | 3 0 1 6 7 4 > c 3 | 2 1 0 7 6 5 > d 4 | 5 6 7 0 1 2 > e 5 | 4 7 6 1 0 3 > f 6 | 7 4 5 2 3 0 > g 7 | 6 5 4 3 2 1 > h 8 | 9 10 11 12 13 14 > i 9 | 8 11 10 13 12 15 > j 10 | 11 8 9 14 15 12 > k 11 | 10 9 8 15 14 13 > l 12 | 13 14 15 8 9 10 > m 13 | 12 15 14 9 8 11 > n 14 | 15 12 13 10 11 8 > o 15 | 14 13 12 11 10 9 > p 16 | 17 18 19 20 21 22 > q 17 | 16 19 18 21 20 23 > r 18 | 19 16 17 22 23 20 > s 19 | 18 17 16 23 22 21 > t 20 | 21 22 23 16 17 18 > u 21 | 20 23 22 17 16 19 > v 22 | 23 20 21 18 19 16 > w 23 | 22 21 20 19 18 17 > x 24 | 25 26 27 28 29 30 > y 25 | 24 27 26 29 28 31 > z 26 | 27 24 25 30 31 28 > First, I transposed the table since the text editor works best across lines not columns ;) I looked at the deltas between the columns and the natural sequence of numbers and I found an interesting pattern. I will attempt to give you an explanation of what I came up with, and I hope it's in any way helpful. For columns numbered with a power of two (1, 2, 4, 8, 16, ...) the deltas are the power of two alternating its sign +/-. It's rather difficult to explain, so please, take a look at the following table: Input 1 2 3 4 5 6 7 8 9 10 11 12 ----------------------------------- Col 1 -1 +1 -1 +1 -1 +1 -1 +1 -1 +1 -1 +1 Col 2 +2 -2 -2 +2 +2 -2 -2 +2 -2 -2 +2 +2 Col 4 +4 +4 +4 -4 -4 -4 -4 +4 +4 +4 +4 -4 Col 8 +8 +8 +8 +8 +8 +8 +8 -8 -8 -8 -8 -8 The sign is positive until you reach the given power of two, then it changes to negative for that power of two times and will keep changing back and forth (it may help you trying to complete some other values on my table, since I don't know whether I make myself clear). The values for the deltas on the other columns is a combination of these previous columns (just like any number can be expressed as a sum of some powers of two) For example, on column 3, the delta equals the delta on col 1 plus the delta on col 2. Take a look: Col 1 -1 +1 -1 +1 -1 +1 -1 +1 -1 +1 -1 +1 Col 2 +2 -2 -2 +2 +2 -2 -2 +2 -2 -2 +2 +2 ----------------------------------------------- Col 3 +1 -1 -3 +3 +1 -1 -3 +3 -3 -1 +1 +3 Column 5 can be calculated based on col 1 + col 4 (5 = 0101) Col 1 -1 +1 -1 +1 -1 +1 -1 +1 -1 +1 -1 +1 Col 4 +4 +4 +4 -4 -4 -4 -4 +4 +4 +4 +4 -4 ----------------------------------------------- Col 5 +3 +5 +3 -3 -5 -3 -5 +5 +3 +5 +3 -3 Column 6 can be calculated based on col 2 + col 4 (6 = 0110) Col 2 +2 -2 -2 +2 +2 -2 -2 +2 -2 -2 +2 +2 Col 4 +4 +4 +4 -4 -4 -4 -4 +4 +4 +4 +4 -4 ----------------------------------------------- Col 6 +6 +2 +2 -2 -2 -6 -6 +6 +2 +2 +6 -2 Column 7 can be calculated based on col 1 + col 2 + col 4 (7 = 0111) Col 1 -1 +1 -1 +1 -1 +1 -1 +1 -1 +1 -1 +1 Col 2 +2 -2 -2 +2 +2 -2 -2 +2 -2 -2 +2 +2 Col 4 +4 +4 +4 -4 -4 -4 -4 +4 +4 +4 +4 -4 ----------------------------------------------- Col 7 +5 +3 +1 -1 -3 -5 -7 +7 +1 +3 +5 -1 Column 9 is no exception. Take column 1 and 8 and add them (9 = 1001) Col 1 -1 +1 -1 +1 -1 +1 -1 +1 -1 +1 -1 +1 Col 8 +8 +8 +8 +8 +8 +8 +8 -8 -8 -8 -8 -8 ----------------------------------------------- Col 9 +7 +9 +7 +9 +7 +9 +7 -7 -9 -7 -9 -7 I guess you can write a formula for the table based on this explanation (which I hope was clear enough). If you need further assistance, I'll be keeping an eye on this thread. I think it was an interesting problem, very well suited for a Ruby Quiz ;) Kind regards, Ed -- Encontr� a "Tu psic�pata favorito" http://tuxmaniac.blogspot.com