Thread for basic questions

For general discussion about Conway's Game of Life.
User avatar
dvgrn
Moderator
Posts: 10610
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Thread for basic questions

Post by dvgrn » December 25th, 2017, 10:22 pm

gameoflifemaniac wrote:Is there a place where I can find awesome Life patterns?
Depends on what you're looking for. Just for example, have you looked at everything in the Downloadable Pattern Catalogs section of the Life Links forum topic, and the patterns in the Very Large Patterns archive in Golly (Help > Online Archives > Very Large Patterns)?

User avatar
gameoflifemaniac
Posts: 1242
Joined: January 22nd, 2017, 11:17 am
Location: There too

Re: Thread for basic questions

Post by gameoflifemaniac » December 26th, 2017, 6:00 am

dvgrn wrote:
gameoflifemaniac wrote:Is there a place where I can find awesome Life patterns?
Depends on what you're looking for. Just for example, have you looked at everything in the Downloadable Pattern Catalogs section of the Life Links forum topic, and the patterns in the Very Large Patterns archive in Golly (Help > Online Archives > Very Large Patterns)?
Is this the only place?
EDIT:
Dave, the script isn't complete. When I run it long enough, it shows errors like: 'Can't create pattern file!.' I stopped the script after running it for a long time, and I couldn't run any pattern, the same error showed up in the status bar lol
This script doesn't show the errors, because it doesn't save the previous tested rotors (because that might cause a lack of memory). It forgets about them this way; it duplicates the layer, randfills the selection in THAT layer, checks if it's an oscillator, and if not it deletes the layer. Now Ctrl-N works instantly after running the script for a long time. That means that it forgot.
This script is really slow because it has to duplicate the layer every time. Can it be improved?

Code: Select all

local g = golly()

function Equal(tbl1,tbl2)
    for k,v in pairs(tbl1) do
        if (tbl2[k] ~= v) then
            return false
        end
    end
    return true
end
selection = g.getselrect()
r=g.getrect()
count=0
while( true )
do
   g.reset()
   pop = g.getpop()
   g.select({})
   g.clone()
   g.select(selection)
   g.randfill(20)
      count=count+1
      if count == 100 then
         count=0
      end
   g.run(100)
   if Equal(r,g.getrect()) and g.getpop() >= pop then
      local cells = g.getcells(g.getrect())
      g.run(1)
      if not (Equal(g.getcells(g.getrect()),cells)) then
         break
      else
         g.dellayer()
      end
   else
      g.dellayer()
   end
end
I was so socially awkward in the past and it will haunt me for the rest of my life.

Code: Select all

b4o25bo$o29bo$b3o3b3o2bob2o2bob2o2bo3bobo$4bobo3bob2o2bob2o2bobo3bobo$
4bobo3bobo5bo5bo3bobo$o3bobo3bobo5bo6b4o$b3o3b3o2bo5bo9bobo$24b4o!

User avatar
dvgrn
Moderator
Posts: 10610
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Thread for basic questions

Post by dvgrn » December 26th, 2017, 10:57 am

gameoflifemaniac wrote:
dvgrn wrote:Just for example, have you looked at everything in the Downloadable Pattern Catalogs section of the Life Links forum topic, and the patterns in the Very Large Patterns archive in Golly (Help > Online Archives > Very Large Patterns)?
Is this the only place?
Of course not. Just for example (again), follow the links to the Life pages for Paul Callahan, Dean Hickerson, Nick Gotts, and David Bell for more pattern collections that are different kinds of awesome.
gameoflifemaniac wrote:Dave, the script isn't complete. When I run it long enough, it shows errors like: 'Can't create pattern file!.'
...
This script is really slow because it has to duplicate the layer every time. Can it be improved?
Sure, there are other ways of doing that trick.

One is to run a "local statorcells = g.getcells(g.getrect())" line just once when the script starts, and also save the selection rectangle in a variable. Maybe create one new layer, so that no matter where the script stops the original layer won't be damaged.

Then instead of g.reset(), you can do a g.new() followed by g.putcells(statorcells), re-using the same layer every time. g.new() short-circuits the Undo history for the rest of the script, whereas g.reset() relies on it.

I'm not sure exactly what's going on with the "Can't create pattern file!" message yet. I was thinking that none of the versions of the script should have been wasting a lot of memory on cumulative Undo history, anyway, since you were doing g.reset() after every test cycle.

User avatar
gameoflifemaniac
Posts: 1242
Joined: January 22nd, 2017, 11:17 am
Location: There too

Re: Thread for basic questions

Post by gameoflifemaniac » December 26th, 2017, 12:27 pm

dvgrn wrote:
gameoflifemaniac wrote:
dvgrn wrote:Just for example, have you looked at everything in the Downloadable Pattern Catalogs section of the Life Links forum topic, and the patterns in the Very Large Patterns archive in Golly (Help > Online Archives > Very Large Patterns)?
Is this the only place?
Of course not. Just for example (again), follow the links to the Life pages for Paul Callahan, Dean Hickerson, Nick Gotts, and David Bell for more pattern collections that are different kinds of awesome.
gameoflifemaniac wrote:Dave, the script isn't complete. When I run it long enough, it shows errors like: 'Can't create pattern file!.'
...
This script is really slow because it has to duplicate the layer every time. Can it be improved?
Sure, there are other ways of doing that trick.

One is to run a "local statorcells = g.getcells(g.getrect())" line just once when the script starts, and also save the selection rectangle in a variable. Maybe create one new layer, so that no matter where the script stops the original layer won't be damaged.

Then instead of g.reset(), you can do a g.new() followed by g.putcells(statorcells), re-using the same layer every time. g.new() short-circuits the Undo history for the rest of the script, whereas g.reset() relies on it.

I'm not sure exactly what's going on with the "Can't create pattern file!" message yet. I was thinking that none of the versions of the script should have been wasting a lot of memory on cumulative Undo history, anyway, since you were doing g.reset() after every test cycle.
But what was the purpose of the count variable?
Anyway, here's the script:

Code: Select all

local g = golly()

function Equal(tbl1,tbl2)
    for k,v in pairs(tbl1) do
        if (tbl2[k] ~= v) then
            return false
        end
    end
    return true
end

r=g.getrect()
local statorcells = g.getcells(g.getrect())
selection = g.getselrect()
count=0
while( true )
do
   g.new("")
   g.putcells(statorcells)
   g.select(selection)
   pop = g.getpop()
   g.randfill(20)
      count=count+1
      if count == 100 then
         count=0
      end
   g.run(100)
   if Equal(r,g.getrect()) and g.getpop() >= pop then
      local cells = g.getcells(g.getrect())
      g.run(1)
      if not (Equal(g.getcells(g.getrect()),cells)) then
         break
      end
   end
end
Last edited by gameoflifemaniac on December 26th, 2017, 12:33 pm, edited 1 time in total.
I was so socially awkward in the past and it will haunt me for the rest of my life.

Code: Select all

b4o25bo$o29bo$b3o3b3o2bob2o2bob2o2bo3bobo$4bobo3bob2o2bob2o2bobo3bobo$
4bobo3bobo5bo5bo3bobo$o3bobo3bobo5bo6b4o$b3o3b3o2bo5bo9bobo$24b4o!

User avatar
dvgrn
Moderator
Posts: 10610
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Thread for basic questions

Post by dvgrn » December 26th, 2017, 12:32 pm

gameoflifemaniac wrote:But what was the purpose of the count variable?
See penultimate paragraph.

User avatar
gameoflifemaniac
Posts: 1242
Joined: January 22nd, 2017, 11:17 am
Location: There too

Re: Thread for basic questions

Post by gameoflifemaniac » December 26th, 2017, 12:58 pm

The script:

Code: Select all

local g = golly()

function Equal(tbl1,tbl2)
    for k,v in pairs(tbl1) do
        if (tbl2[k] ~= v) then
            return false
        end
    end
    return true
end

r=g.getrect()
local statorcells = g.getcells(g.getrect())
selection = g.getselrect()
g.clear(0)
count=0
while( true )
do
   g.new("")
   g.putcells(statorcells)
   g.select(selection)
   pop = g.getpop()
   g.randfill(20)
      count=count+1
      if count == 100 then
         count=0
      end
   g.run(100)
   if Equal(r,g.getrect()) and g.getpop() >= pop then
      local cells = g.getcells(g.getrect())
      g.run(1)
      if not (Equal(g.getcells(g.getrect()),cells)) then
         break
      end
   end
end
What is this weird thing?
Attachments
Zrzut ekranu (42).png
Zrzut ekranu (42).png (106.53 KiB) Viewed 11575 times
I was so socially awkward in the past and it will haunt me for the rest of my life.

Code: Select all

b4o25bo$o29bo$b3o3b3o2bob2o2bob2o2bo3bobo$4bobo3bob2o2bob2o2bobo3bobo$
4bobo3bobo5bo5bo3bobo$o3bobo3bobo5bo6b4o$b3o3b3o2bo5bo9bobo$24b4o!

User avatar
gameoflifemaniac
Posts: 1242
Joined: January 22nd, 2017, 11:17 am
Location: There too

Re: Thread for basic questions

Post by gameoflifemaniac » December 26th, 2017, 1:29 pm

The script ignores patterns like these (patterns that have a stator inside the selection):

Code: Select all

x = 12, y = 12, rule = B3/S23
4b2o$4b2o2$4b4o$3bo2bobob2o$3bo4bob2o$2ob2o3bo$2obo4bo$4b4o2$6b2o$6b2o
!
This must be fixed. The previous version did detect this,

Code: Select all

local g = golly()

function Equal(tbl1,tbl2)
    for k,v in pairs(tbl1) do
        if (tbl2[k] ~= v) then
            return false
        end
    end
    return true
end

r=g.getrect()
count=0
while( true )
do
   g.reset()
   pop = g.getpop()
   g.randfill(20)
      count=count+1
      if count == 100 then
         count=0
      end
   g.run(100)
   if Equal(r,g.getrect()) and g.getpop() >= pop then
      local cells = g.getcells(g.getrect())
      g.run(1)
      if not (Equal(g.getcells(g.getrect()),cells)) then
         break
      end
   end
end
but now it doesn't work for those.
I was so socially awkward in the past and it will haunt me for the rest of my life.

Code: Select all

b4o25bo$o29bo$b3o3b3o2bob2o2bob2o2bo3bobo$4bobo3bob2o2bob2o2bobo3bobo$
4bobo3bobo5bo5bo3bobo$o3bobo3bobo5bo6b4o$b3o3b3o2bo5bo9bobo$24b4o!

User avatar
dvgrn
Moderator
Posts: 10610
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Thread for basic questions

Post by dvgrn » December 26th, 2017, 2:05 pm

gameoflifemaniac wrote:The script...
Here you've added a count variable back in, but it doesn't do anything useful. The point was to run a g.update() command only one time in a hundred, or one time in a thousand, so that you could see that something was happening but Golly wouldn't have to update the screen on every test cycle. That's the most time-consuming work Golly has to do, and if it's done every cycle then the updates happen too fast to see anyway.
gameoflifemaniac wrote:The script ignores patterns like these (patterns that have a stator inside the selection)...
Can you see why it ignores these? It's not exactly because there's a stator inside the selection -- it would do the same thing for this 3x3 case, half the time:

Code: Select all

x = 11, y = 11, rule = B3/S23
4bo$2b3o$bo$bo2b3o$2obo3bo$3bo3bo$3bo3bob2o$4b3o2bo$9bo$6b3o$6bo!
The reason is that you're mis-using Equal(), which was originally written to compare non-empty g.getrect() rectangles. It needs to be modified if you're comparing a shorter cell list to a longer cell list. Unequal-length cell lists are never really equal, but your current Equal() function will return true if the shorter list comes first and all of its cells match the corresponding cells in the longer list.
gameoflifemaniac wrote:What is this weird thing?
No idea. That oversized screenshot was plenty awkward enough to look at the first time around, and the question hasn't improved either.

A sentence or two explaining what you were doing when you took the screenshot would be very helpful. In particular: is this something that happens every time you run a certain script, or do a certain set of steps? If so, what is the script, or what is the complete list of steps, so that someone else can duplicate the same problem?

If you only give half the steps, or no steps at all, then you've basically invented a new guessing game where you're the only one who knows the rules. If you don't get an answer to a question, it might be worth reviewing it to see if you yourself would try to answer it if someone else had asked it.

If not, then maybe try changing the question.

User avatar
gameoflifemaniac
Posts: 1242
Joined: January 22nd, 2017, 11:17 am
Location: There too

Re: Thread for basic questions

Post by gameoflifemaniac » December 26th, 2017, 2:16 pm

dvgrn wrote:
gameoflifemaniac wrote:The script...
Here you've added a count variable back in, but it doesn't do anything useful. The point was to run a g.update() command only one time in a hundred, or one time in a thousand, so that you could see that something was happening but Golly wouldn't have to update the screen on every test cycle. That's the most time-consuming work Golly has to do, and if it's done every cycle then the updates happen too fast to see anyway.
gameoflifemaniac wrote:The script ignores patterns like these (patterns that have a stator inside the selection)...
Can you see why it ignores these? It's not exactly because there's a stator inside the selection -- it would do the same thing for this 3x3 case, half the time:

Code: Select all

x = 11, y = 11, rule = B3/S23
4bo$2b3o$bo$bo2b3o$2obo3bo$3bo3bo$3bo3bob2o$4b3o2bo$9bo$6b3o$6bo!
The reason is that you're mis-using Equal(), which was originally written to compare non-empty g.getrect() rectangles. It needs to be modified if you're comparing a shorter cell list to a longer cell list. Unequal-length cell lists are never really equal, but your current Equal() function will return true if the shorter list comes first and all of its cells match the corresponding cells in the longer list.
gameoflifemaniac wrote:What is this weird thing?
No idea. That oversized screenshot was plenty awkward enough to look at the first time around, and the question hasn't improved either.

A sentence or two explaining what you were doing when you took the screenshot would be very helpful. In particular: is this something that happens every time you run a certain script, or do a certain set of steps? If so, what is the script, or what is the complete list of steps, so that someone else can duplicate the same problem?

If you only give half the steps, or no steps at all, then you've basically invented a new guessing game where you're the only one who knows the rules. If you don't get an answer to a question, it might be worth reviewing it to see if you yourself would try to answer it if someone else had asked it.

If not, then maybe try changing the question.
What should I do?
I was so socially awkward in the past and it will haunt me for the rest of my life.

Code: Select all

b4o25bo$o29bo$b3o3b3o2bob2o2bob2o2bo3bobo$4bobo3bob2o2bob2o2bobo3bobo$
4bobo3bobo5bo5bo3bobo$o3bobo3bobo5bo6b4o$b3o3b3o2bo5bo9bobo$24b4o!

User avatar
dvgrn
Moderator
Posts: 10610
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Thread for basic questions

Post by dvgrn » December 26th, 2017, 3:21 pm

gameoflifemaniac wrote:What should I do?
First off, please don't keep quoting huge blocks of text with multiple unrelated subtopics in it, and then ask a question like this at the end. It's hard to know which subtopic you're asking about.

If you want to fix the script, you could follow the "needs to be modified" link and figure out how to add code for this suggestion:
dvgrn wrote:You'll have to change Equal() slightly for a more accurate comparison. First check if the lengths are the same, and return false if they're not. Then only do the item-by-item comparison if the lengths are identical.
The length of a Lua table can be found with the # operator -- at least, if it's a well-behaved Lua table like the rectangle lists and cell lists generated by Golly. So try something like if #tbl1 ~= #tbl2 then return false end, at the beginning of the Equal() function.

If you want help figuring out what the "weird thing" is, then post steps that someone can use to reproduce the screenshot you posted and re-posted.

User avatar
dvgrn
Moderator
Posts: 10610
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Thread for basic questions

Post by dvgrn » December 26th, 2017, 8:33 pm

gmc_nxtman wrote:It's pretty interesting that the sequence occurs in an almost-similar form, but not quite. I didn't know that there was already discussion about this particular sequence, I should've probably searched harder.
It might have been hard to find those sequences with the numbers you were looking at:
6, 4, 14, 14, 12, 62, 4, 126, 28, 30, 30, 28, 1022, 24, 126, 124, 4094
So far I haven't found any cases where the sequence generated by one method is really any different from the sequence generated by any of the other methods. At least, my theory is that the Wolfram Cloud list has an error in it in one place (see below) and the other mismatches are just because the nice simple "multiplicative suborder" formula, A160657, fails for a few cases that have subperiods. See below for more detail on that.

Here's the collection of mechanisms that produce these mysterious period numbers:

-- single ON cell in B1/S on a bounded grid
-- 2xN rectangles in the 2x2 rule (B36/S125)
-- Rule 90 repetition periods (see table and question at end of this post)
-- diagonal lines in B2-a3-i/S01c and B2e/S (and no doubt other rule variants).
-- orthogonal dotted lines in B2cek3i/S12cei or variants
(looks like B2c/S is all that's needed to get the oscillators -- maybe AbhpzTa used B2cek3i/S12cei because it also supports the gliders and spaceships in the "horiship guns" in Golly's Patterns/Non-Totalistic folder)

Code: Select all

x = 55, y = 1, rule = B2c/S
obobobobobobobobobobobobobobobobobobobobobobobobobobobo!
-- orthogonal solid lines, rule provided by Blinkerspawn on the ConwayLife Lounge:
B3i4it5ry6k7e/S1e2k3ey4ti5i looks like it duplicates all the periods from the Wolfram Rule 90 list, which is not true for any of the other 2D rules I've collected so far.
-- orthogonal solid lines, making a pattern of 1x2 blocks instead of 2x2 -- hint provided by drc. Here's the mysterious p174762 oscillator again in this rule:

Code: Select all

x = 72, y = 1, rule = B2ci3ai4ci8/S02ae3eijkq4iz5a6i7e
72o!
Subtract one from the WolframIndex (see below) to get the length of line to use. So this is a period 87381 oscillator, length 36, WolframIndex of 37:

Code: Select all

x = 36, y = 1, rule = B3i4it5ry6k7e/S1e2k3ey4it5i
36o!
#C [[ AUTOSTART STEP 50 STOP 87381 ]]
Here are a few more of the diagonal-line periods tabulated. There seems to be a perfect match with the other mechanisms so far.

Code: Select all

B2-a3-i/S01c diagonal lines:
X = pattern dies out completely
Length    Odd   Even
------   ----   ----
     1  (stable)
     2             X
     3      6
     4             4
     5     14
     6             X
     7     14
     8            12
     9     62
    10             8
    11    126
    12            28
    13     30
    14             X
    15     30
    16            28
    17   1022
    18            24
    19    126
    20           124
    21   4094
    22            16
    23   2046 
    24           252
    25   1022
    26            56
    27  32766
    28            60
    29     62
    30             X
    31     62
    32            60 
    33   8190
    34            56
    35 174762*
    36          2044
    37   8190
    38            48
    39   2046
    40           252
    41    254
    42           248
The "Odd" column is mostly understandable. It's very close to A160657. As Nathaniel points out, the number is usually two less than a power of two -- and the exponent is something called the "multiplicative suborder" (see the A003558 sequence).

The "Even" column period for a diagonal line of length 2N+2, for N>1, seems to be always twice the period of a line of length N... unless the length is two less than a power of two, in which case all cells die. Which is just what El'endia Starman from the Quest for Tetris project says in https://oeis.org/A268754: "For odd-indexed terms, a(2n+1) = 2*a(n), except when n is of the form (2^k - 1), in which case a(n) = 1."

There are occasional exceptions in the Odd column, where an oscillator returns to its original state too soon. The A160657 calculation does still give a number where the line returns to its original configuration -- but in just a few cases, that number is some multiple of the period, rather than the actual period.

In the weird cases so far, the multiple is always three. But a 2^N-2 period can perfectly well be divisible by three without displaying this subperiod behavior.

Example: the multiplicative suborder calculation gives the value 126 for a length-11 diagonal line. 126 is the actual period, not 126/3 = 42.

However, the multiplicative suborder calculation gives the value 524286 for a length-35 diagonal line. But the actual oscillator period is only a third of that -- 174762.

User avatar
dvgrn
Moderator
Posts: 10610
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Thread for basic questions

Post by dvgrn » December 26th, 2017, 8:42 pm

dvgrn wrote:Here are a few more of the diagonal-line periods tabulated. There seems to be a perfect match with the other mechanisms so far...
It seems perfectly possible that somewhere up there in the ridiculously long diagonal lines, the actual period may again end up being smaller than the period that you'd calculate using the multiplicative suborder -- but this time the reduction might be by some factor other than three. EDIT: There's a factor of seven reduction implied by the Wolfram Cloud table -- see quoted text at the bottom of this post -- but that table seems to be wrong in at least one place, and I don't see how to experimentally verify this number with the hardware I have available.

Unfortunately the periods get painfully large fairly quickly, so it gets difficult to generate new terms in the sequence. Anybody know where a longer list might be found than the one I reproduced in the table at the bottom of this post?

... The list from the Wolfram Cloud document is in fact a good bit longer, so maybe it's worth making an updated comparison list here. Watch out! Warning! The Index values match the OEIS A268754 sequence, not the number of cells in a diagonal line.

Diagonal line length = Index-1 = WolframIndex/2-2
Also, it looks like any period in the Wolfram Cloud list can be duplicated by a solid 1xN line in B3i4it5ry6k7e/S1e2k3ey4it5i, where N = WolframIndex-1. At least, it's worked for every example I've tried with oscar.lua so far -- except for WolframIndex 74, which not too surprisingly comes out at a third of the period listed.

Code: Select all

Index    A268754 even    A268754 odd    A160657       Wolfram
                                                      "Rule 90" list  
                                                      [WolframIndex -> value]
                                                        1 -> 1
                                                        2 -> 1
                                                        3 -> 1
     1                             1                    4 -> 1
                                                        5 -> 3
     2              2                         2         6 -> 2
                                                        7 -> 7
     3                             1                    8 -> 1
                                                        9 -> 7
     4              6                         6        10 -> 6
                                                       11 -> 31
     5                             4                   12 -> 4
                                                       13 -> 63
     6             14                        14        14 -> 14
                                                       15 -> 15
     7                             1                   16 -> 1
                                                       17 -> 15
     8             14                        14        18 -> 14
                                                       19 -> 511
     9                            12                   20 -> 12
                                                       21 -> 63
    10             62                        62        22 -> 62
                                                       23 -> 2047
    11                             8                   24 -> 8
                                                       25 -> 1023
    12            126                       126        26 -> 126
                                                       27 -> 511
    13                            28                   28 -> 28
                                                       29 -> 16383
    14             30                        30        30 -> 30
                                                       31 -> 31
    15                             1                   32 -> 1
                                                       33 -> 31
    16             30                        30        34 -> 30
                                                       35 -> 4095
    17                            28                   36 -> 28
                                                       37 -> 87381
    18           1022                      1022        38 -> 1022
                                                       39 -> 4095
    19                            24                   40 -> 24
                                                       41 -> 1023
    20            126                       126        42 -> 126
                                                       43 -> 127
    21                           124                   44 -> 124
                                                       45 -> 4095
    22           4094                      4094        46 -> 4094
                                                       47 -> 8388607
    23                            16                   48 -> 16
                                                       49 -> 2097151
    24           2046                      2046        50 -> 2046
                                                       51 -> 255
    25                           252                   52 -> 252
                                                       53 -> 67108863
    26           1022                      1022        54 -> 1022
                                                       55 -> 1048575
    27                            56                   56 -> 56
                                                       57 -> 511
    28          32766                     32766        58 -> 32766
                                                       59 -> 536870911
    29                            60                   60 -> 60
                                                       61 -> 1073741823
    30             62                        62        62 -> 62
                                                       63 -> 63
    31                             1                   64 -> 1
                                                       65 -> 63
    32             62                        62        66 -> 62
                                                       67 -> 8589934591
    33                            60                   68 -> 60
                                                       69 -> 4194303
    34           8190                      8190        70 -> 8190
                                                       71 -> 34359738367
    35                            56                   72 -> 56
                                                       73 -> 511
    36         174762                    524286        74 -> 524286   **********
                                                       75 -> 1048575
    37                          2044                   76 -> 2044
                                                       77 -> 1073741823
    38           8190                      8190        78 -> 8190
                                                       79 -> 549755813887
    39                            48                   80 -> 48
                                                       81 -> 134217727
    40           2046                      2046        82 -> 2046
                                                       83 -> 2199023255551
    41                           252                   84 -> 252
                                                       85 -> 255
    42            254                       254        86 -> 254
                                                       87 -> 268435455
    43                           248                   88 -> 248
                                                       89 -> 2047
    44           8190                      8190        90 -> 8190
                                                       91 -> 4095
    45                          8188                   92 -> 8188
                                                       93 -> 1023
    46       16777214                  16777214        94 -> 16777214
                                                       95 -> 22906492245
    47                            32                   96 -> 32
                                                       97 -> 16777215
    48        4194302                   4194302        98 -> 4194302
                                                       99 -> 32767
    49                          4092                  100 -> 4092
                                                      101 -> 375299968947541
    50            510                       510       102 -> 510
                                                      103 -> 2251799813685247
    51                           504                  104 -> 504
                                                      105 -> 4095
    52      134217726                 134217726       106 -> 134217726
                                                      107 -> 9007199254740991
    53                          2044                  108 -> 2044
                                                      109 -> 262143
    54        2097150                   2097150       110 -> 2097150
                                                      111 -> 68719476735
    55                                                112 -> 112
                                                      113 -> 16383
    56           1022                      1022       114 -> 1022
                                                      115 -> 17592186044415
    57                                                116 -> 65532
                                                      117 -> 4095
    58                               1073741822       118 -> 1073741822
                                                      119 -> 16777215
    59                                                120 -> 120
                                                      121 -> 36028797018963967
    60                               2147483646       122 -> 2147483646
                                                      123 -> 1048575
    61                                                124 -> 124
                                                      125 -> 1125899906842623
    62                                      126       126 -> 126
                                                      127 -> 127
    63                                                128 -> 1
                                                      129 -> 127
    64                                      126       130 -> 126
                                                      131 -> 36893488147419103231
    65                                                132 -> 124
                                                      133 -> 262143
    66                              17179869182       134 -> 17179869182
                                                      135 -> 68719476735
    67                                                136 -> 120
                                                      137 -> 17179869183
    68                                  8388606       138 -> 8388606
                                                      139 -> 590295810358705651711
    69                                                140 -> 16380
                                                      141 -> 23456248059221
    70                              68719476734       142 -> 68719476734
                                                      143 -> 1152921504606846975
    71                                                144 -> 112
                                                      145 -> 16383
    72                                     1022       146 -> 1022
                                                      147 -> 4398046511103
    73                                                148 -> 1048572
                                                      149 -> 18889465931478580854783
    74                                  2097150       150 -> 2097150
                                                      151 -> 32767
    75                                                152 -> 4088
                                                      153 -> 16777215
    76                                214748364       154 -> 2147483646
                                                      155 -> 1048575
    77                                                156 -> 16380
                                                      157 -> 67108863
    78                                                158 -> 1099511627774
                                                      159 -> 4503599627370495
    79                                                160 -> 96
                                                      161 -> 8589934591
    80                                                162 -> 268435454
                                                      163 -> 2417851639229258349412351
    81                                                164 -> 4092
                                                      165 -> 1048575
    82                                                166 -> 4398046511102
                                                      167 -> 9671406556917033397649407
    83                                                168 -> 504
                                                      169 -> 302231454903657293676543
    84                                                170 -> 510
                                                      171 -> 511
    85                                                172 -> 508
                                                      173 -> 77371252455336267181195263
    86                                                174 -> 536870910
                                                      175 -> 1152921504606846975
    87                                                176 -> 496
                                                      177 -> 536870911
    88                                                178 -> 4094
                                                      179 -> 618970019642690137449562111
    89                                                180 -> 16380
                                                      181 -> 1237940039285380274899124223
    90                                                182 -> 8190
                                                      183 -> 1152921504606846975
    91                                                184 -> 16376
                                                      185 -> 262143
    92                                                186 -> 2046
                                                      187 -> 1099511627775
    93                                                188 -> 33554428
                                                      189 -> 262143
    94    45812984490              137438953470       190 -> 45812984490    *************
                                                      191 -> 3961408125713216879677197516
    95                                                192 -> 64
                                                      193 -> 281474976710655
    96                                                194 -> 33554430
                                                      195 -> 4095
    97                                                196 -> 8388604
                                                      197 -> 1056375500190191167913919337
    98                                                198 -> 65534
                                                      199 -> 9054647144487352867833594324
    99                                                200 -> 8184
The lines of asterisks mark the locations where the different lists and sequences disagree. Notice again that they disagree in a different way for index=36 and index=94.

So... the next question is:

How exactly are we supposed to use Rule 90 to reproduce all those other "RepetitionPeriods" from that mysterious Wolfram Cloud document? The "in-between" numbers not included in the A268754 sequence are even bigger and more outlandish, on average, than the A268754 values.

EDIT: See this later post for various pointers toward an answer.

Also, is the WolframIndex=74 value wrong in that document? Shouldn't it match the actual A268754 figure for index=36, not the calculated figure from A160657? Notice that the period-doubling pattern described in A268754 also holds here -- WolframIndex(2N) = 2(WolframIndex(N)) except when N is a power of two. WolframIndex(2^k)=1.

But then have a look at WolframIndex(37) -- it's half of the A268754 term, 174762, and is _not_ half of WolframIndex(2*37). Pretty sure WolframIndex(74) = 524286 is just an error.

Maybe there's something about "repetition periods" for different rules on Wolfram Alpha somewhere -- enough to pick up a good clue about how to generate these numbers using Rule 90...?

Code: Select all

A003558 
n	a(n)     WolframIndex -> value
18	18	 37 -> 87381                          (2^18-1)/3
47	36	 95 -> 22906492245                    (2^36-1)/3
50	50	101 -> 375299968947541                (2^50-1)/3
70 	46	141 -> 23456248059221                 (2^46-1)/3
98 	98	197 -> 105637550019019116791391933781 (2^98-1)/3
99 	99	199 -> 90546471444873528678335943241  (2^99-1)/7

Strangely, later oscillators with the same coach number (18) apparently actually oscillate at the full period.

WolframIndex 109, 133, 185, 189 all have a recorded period of 2^18-1.

User avatar
Extrementhusiast
Posts: 1966
Joined: June 16th, 2009, 11:24 pm
Location: USA

Re: Thread for basic questions

Post by Extrementhusiast » December 26th, 2017, 9:09 pm

Back in regular Life, are there any infinite waves that travel through a vacuum with speed greater than c/2 but less than c?
I Like My Heisenburps! (and others)

AforAmpere
Posts: 1334
Joined: July 1st, 2016, 3:58 pm

Re: Thread for basic questions

Post by AforAmpere » December 27th, 2017, 7:32 pm

I was searching for a w14 knightship in Morely/Move (B368/S245) with gfind-pt, and it output this:

Code: Select all

x = 13, y = 91, rule = B368/S245
3o$bo$3o$b2obobo$5bo$3b4o$5b3o2$6bo$5b3o$7bobo$2o6b3o$b2o5bobo$
b2o4b2o$2bo4bo$8b2o$3bo4b2obo$2b4o3bo$2b2ob2o2bo$5bo5bo$5bo2bob2o
$4b2o3b3o$7bob2o$6b2ob2o$7bobo$5b2obobo$5b2o2$7b3obo$5b2o4b2o$7b
o2bo$2bo5b5o$3bo4b2obo$9bo$3b2obo$2bo2b3obo$5bobob2o$2bob3obo$bo
b2obob2o$b3obo3b3o$b3o2bobob2o$3b3ob2o$3b3o4bo$3b6obo$8b2o$9bo$6b
2o$6bo$7b3o$9bo$6bo2bo$6bo2bo$7b3o$5bo3bo$bo2bob2o3bo$obo3bo2bo$
b2o2b2o2b2o$o5bo2b3o$4b2ob2o2bo$2bob2o3bo$5b2o2bob2o$bo2bobob4o$
b4obob2obo$2b2ob2ob2o$bobo3bo$b2o2b3o$bob2ob2o$bo2b3o$6bo$o2bob2o
bo$2obo$obob4o$4bob2o$3b3o2bo$5bo2bo$2b2ob2o2bo$2b4obo$5bobo$4bo
bo3bo$4bob2o2bo$5bo4bo$10bo$7b4o$7bob2o$9bob2o$8bo2bo$7bo2b2o$7b
obobo$9b2obo$7b2obo$8bo!
This partial fails, but why did it output it as finished?
I manage the 5S project, which collects all known spaceship speeds in Isotropic Non-totalistic rules. I also wrote EPE, a tool for searching in the INT rulespace.

Things to work on:
- Find (7,1)c/8 and 9c/10 ships in non-B0 INT.
- EPE improvements.

User avatar
BlinkerSpawn
Posts: 1992
Joined: November 8th, 2014, 8:48 pm
Location: Getting a snacker from R-Bee's

Re: Thread for basic questions

Post by BlinkerSpawn » December 27th, 2017, 9:12 pm

AforAmpere wrote:I was searching for a w14 knightship in Morely/Move (B368/S245) with gfind-pt, and it output this:

Code: Select all

rle
This partial fails, but why did it output it as finished?
You searched from the back?
LifeWiki: Like Wikipedia but with more spaceships. [citation needed]

Image

User avatar
gameoflifemaniac
Posts: 1242
Joined: January 22nd, 2017, 11:17 am
Location: There too

Re: Thread for basic questions

Post by gameoflifemaniac » December 28th, 2017, 9:03 am

dvgrn wrote:
gameoflifemaniac wrote:What should I do?
dvgrn wrote:You'll have to change Equal() slightly for a more accurate comparison. First check if the lengths are the same, and return false if they're not. Then only do the item-by-item comparison if the lengths are identical.
The length of a Lua table can be found with the # operator -- at least, if it's a well-behaved Lua table like the rectangle lists and cell lists generated by Golly. So try something like if #tbl1 ~= #tbl2 then return false end, at the beginning of the Equal() function.
Ok, how should it look like?
Like so...

Code: Select all

function Equal(tbl1,tbl2)

    for k,v in pairs(tbl1) do
        if #tbl1 ~= #tbl2 then
            return false
            if (item-by-item comparison) then
                return false
        if (tbl2[k] ~= v) then
            return false
        end
    end
    return true
end
...or like so?

Code: Select all

function Equal(tbl1,tbl2)

    for k,v in pairs(tbl1) do
        if #tbl1 ~= #tbl2 then
            if (item-by-item comparison) then
                return false
        if (tbl2[k] ~= v) then
            return false
        end
    end
    return true
end
And I have no idea how to do that block in the brackets.
To do this "weird thing", run the script with the count variable. It will automatically show up.
EDIT: Hell yeah, this works!

Code: Select all

local g = golly()

function Equal(tbl1,tbl2)
    for k,v in pairs(tbl1) do
        if (tbl2[k] ~= v) then
            return false
        end
    end
    return true
end

r=g.getrect()
statorcells = g.getcells(g.getrect())
selection = g.getselrect()
while( true )
do
   g.new("")
   g.putcells(statorcells)
   g.select(selection)
   pop = g.getpop()
   g.randfill(20)
   g.run(100)
   if Equal(r,g.getrect()) and g.getpop() >= pop then
      local cells = g.getcells(g.getrect())
      g.run(1)
      if not (Equal(g.getcells(g.getrect()),cells)) then
         break
      end
   end
end
I was so socially awkward in the past and it will haunt me for the rest of my life.

Code: Select all

b4o25bo$o29bo$b3o3b3o2bob2o2bob2o2bo3bobo$4bobo3bob2o2bob2o2bobo3bobo$
4bobo3bobo5bo5bo3bobo$o3bobo3bobo5bo6b4o$b3o3b3o2bo5bo9bobo$24b4o!

User avatar
dvgrn
Moderator
Posts: 10610
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Thread for basic questions

Post by dvgrn » December 28th, 2017, 3:59 pm

gameoflifemaniac wrote:To do this "weird thing", run the script with the count variable. It will automatically show up.
You mean the script in this post?

If not, can you provide an actual link? Otherwise we seem to be still playing the same guessing game where you're the only one who knows the rules. There are at least three of these recent scripts that include a count variable.

Maybe not too surprisingly, when I run that script I don't see anything like your screenshot.

User avatar
Apple Bottom
Posts: 1034
Joined: July 27th, 2015, 2:06 pm
Contact:

Re: Thread for basic questions

Post by Apple Bottom » December 28th, 2017, 4:59 pm

dvgrn wrote:Otherwise we seem to be still playing the same guessing game where you're the only one who knows the rules.
A strange game. The only winning move is not to play.
If you speak, your speech must be better than your silence would have been. — Arabian proverb

Catagolue: Apple Bottom • Life Wiki: Apple Bottom • Twitter: @_AppleBottom_

Proud member of the Pattern Raiders!

wildmyron
Posts: 1542
Joined: August 9th, 2013, 12:45 am
Location: Western Australia

Re: Thread for basic questions

Post by wildmyron » December 29th, 2017, 5:38 am

BlinkerSpawn wrote:
AforAmpere wrote:I was searching for a w14 knightship in Morely/Move (B368/S245) with gfind-pt, and it output this:

Code: Select all

rle
This partial fails, but why did it output it as finished?
You searched from the back?
Searching from the back will give the same results as searching from the front, except for most rules it will take much longer. Something has gone drastically wrong with this search, or the results output, because the leftmost 10 columns reappear after five generations, but the rightmost four columns do not.

Can you provide a link to the exact version of source for gfind which you used (or post a copy if you modified it). Sorry, I haven't been able to attempt to reproduce this result as I don't have access to gfind at the moment. Further discussion should probably move over to the gfind thread in the scripts forum.
The 5S project (Smallest Spaceships Supporting Specific Speeds) is now maintained by AforAmpere. The latest collection is hosted on GitHub and contains well over 1,000,000 spaceships.

Semi-active here - recovering from a severe case of LWTDS.

User avatar
gameoflifemaniac
Posts: 1242
Joined: January 22nd, 2017, 11:17 am
Location: There too

Re: Thread for basic questions

Post by gameoflifemaniac » December 29th, 2017, 11:00 am

Wow!!!!!!!!!!!!!!!!!!!
My script found an oscillator! I noticed it has the same rotor as the burloaferimeter.

Code: Select all

x = 14, y = 14, rule = B3/S23
6b2o$6b2o2$4b6o$3bo6bo$3bo3b2obo$2obobobo2bob2o$2obobo3b2ob2o$3bob2o3b
o$3bo4bobo$4b6o2$6b2o$6b2o!
dvgrn wrote:Maybe not too surprisingly, when I run that script I don't see anything like your screenshot.
Just run the script (the presence or absence of the count variable doesn't matter (probably)) and sometimes happens, sometimes not. But if you wait long enough, it will happen.
Or you can run a pattern at a random base with a speed of 2. The weird patterns will appear too.
EDIT: Next one! (Actually I found it before the script did)

Code: Select all

x = 14, y = 14, rule = B3/S23
6b2o$6b2o2$4b6o$3bo6bo$3bob3o2bo$2obobo2bobob2o$2obo4bobob2o$3b2o2b2ob
o$3bobo4bo$4b6o2$6b2o$6b2o!
But it was found by the script! And that counts.
I was so socially awkward in the past and it will haunt me for the rest of my life.

Code: Select all

b4o25bo$o29bo$b3o3b3o2bob2o2bob2o2bo3bobo$4bobo3bob2o2bob2o2bobo3bobo$
4bobo3bobo5bo5bo3bobo$o3bobo3bobo5bo6b4o$b3o3b3o2bo5bo9bobo$24b4o!

Bullet51
Posts: 663
Joined: July 21st, 2014, 4:35 am

Re: Thread for basic questions

Post by Bullet51 » December 30th, 2017, 7:05 am

Is this catalysis known?

Code: Select all

x = 22, y = 19, rule = lifehistory
5.2A$6.A$5.A$2A3.2A5.2A$A.A5.2A2.A$2.A2.3A2.A.A$.2A.A2.A.A.A$4.2A2B2A
$4.A2.B2.A$5.5AB$9.B$5.2AB2A$3.A2.A.2AB$3.2A3.2B$9.BA8.A$8.2BAB7.A$8.
2BABA6.A.A$9.BA8.A$10.A8.A!
Still drifting.

User avatar
BlinkerSpawn
Posts: 1992
Joined: November 8th, 2014, 8:48 pm
Location: Getting a snacker from R-Bee's

Re: Thread for basic questions

Post by BlinkerSpawn » December 30th, 2017, 10:48 am

Bullet51 wrote:Is this catalysis known?

Code: Select all

x = 22, y = 19, rule = lifehistory
5.2A$6.A$5.A$2A3.2A5.2A$A.A5.2A2.A$2.A2.3A2.A.A$.2A.A2.A.A.A$4.2A2B2A
$4.A2.B2.A$5.5AB$9.B$5.2AB2A$3.A2.A.2AB$3.2A3.2B$9.BA8.A$8.2BAB7.A$8.
2BABA6.A.A$9.BA8.A$10.A8.A!
That catalyst looks like half of the arbitrary period multiplier (or whatever it's actually called).
LifeWiki: Like Wikipedia but with more spaceships. [citation needed]

Image

User avatar
gameoflifemaniac
Posts: 1242
Joined: January 22nd, 2017, 11:17 am
Location: There too

Re: Thread for basic questions

Post by gameoflifemaniac » December 30th, 2017, 11:20 am

BlinkerSpawn wrote:
Bullet51 wrote:Is this catalysis known?

Code: Select all

x = 22, y = 19, rule = lifehistory
5.2A$6.A$5.A$2A3.2A5.2A$A.A5.2A2.A$2.A2.3A2.A.A$.2A.A2.A.A.A$4.2A2B2A
$4.A2.B2.A$5.5AB$9.B$5.2AB2A$3.A2.A.2AB$3.2A3.2B$9.BA8.A$8.2BAB7.A$8.
2BABA6.A.A$9.BA8.A$10.A8.A!
That catalyst looks like half of the arbitrary period multiplier (or whatever it's actually called).
What arbitrary period multiplier? I'm very curious!
I was so socially awkward in the past and it will haunt me for the rest of my life.

Code: Select all

b4o25bo$o29bo$b3o3b3o2bob2o2bob2o2bo3bobo$4bobo3bob2o2bob2o2bobo3bobo$
4bobo3bobo5bo5bo3bobo$o3bobo3bobo5bo6b4o$b3o3b3o2bo5bo9bobo$24b4o!

AforAmpere
Posts: 1334
Joined: July 1st, 2016, 3:58 pm

Re: Thread for basic questions

Post by AforAmpere » December 30th, 2017, 1:46 pm

What are the speed limits for spaceships in B0 rules? Orthogonal is C. I think, but I am not sure that the diagonal speed limit is 3c/4, but what about oblique?
I manage the 5S project, which collects all known spaceship speeds in Isotropic Non-totalistic rules. I also wrote EPE, a tool for searching in the INT rulespace.

Things to work on:
- Find (7,1)c/8 and 9c/10 ships in non-B0 INT.
- EPE improvements.

User avatar
BlinkerSpawn
Posts: 1992
Joined: November 8th, 2014, 8:48 pm
Location: Getting a snacker from R-Bee's

Re: Thread for basic questions

Post by BlinkerSpawn » December 30th, 2017, 2:07 pm

gameoflifemaniac wrote:
BlinkerSpawn wrote:
Bullet51 wrote:Is this catalysis known?

Code: Select all

x = 22, y = 19, rule = lifehistory
5.2A$6.A$5.A$2A3.2A5.2A$A.A5.2A2.A$2.A2.3A2.A.A$.2A.A2.A.A.A$4.2A2B2A
$4.A2.B2.A$5.5AB$9.B$5.2AB2A$3.A2.A.2AB$3.2A3.2B$9.BA8.A$8.2BAB7.A$8.
2BABA6.A.A$9.BA8.A$10.A8.A!
That catalyst looks like half of the arbitrary period multiplier (or whatever it's actually called).
What arbitrary period multiplier? I'm very curious!
An interaction found by Noam Elkies
Comparison:

Code: Select all

x = 40, y = 23, rule = LifeHistory
11.2A15.2A$11.A17.A$5.2A.A3.3A13.A$5.2A.4A2.A8.2A3.2A5.2A$12.A10.A.A
5.2A2.A$5.5A2.2A11.A2.3A2.A.A$4.A5.A.A2.A8.2A.A2.A.A.A$2A3.2A2.2A3.2A
11.2A2B2A$A2.A.A2.B2.A15.A2.B2.A$2.2A2.5AB16.5AB$3.A6.B6.A14.B6.A$.A
2.4AB2A4.3A10.2AB2A4.3A$.3A3.A.2AB2.A11.A2.A.2AB2.A$4.A4.2B3.BA10.2A
3.2B3.BA$3.2A5.BA3BA16.BA3BA$10.BA2B18.BA2B$9.BA3BA16.BA3BA$5.2A3.ABA
BA12.2A3.ABABA$5.A2.A.A.AB13.A2.A.A.AB$7.2A.A.A.A14.2A.A.A.A$8.A.A2.
2A15.A.A2.2A$8.A.A19.A.A$9.A21.A!
LifeWiki: Like Wikipedia but with more spaceships. [citation needed]

Image

Post Reply