http://catagolue.appspot.com//hashsoup/ ... xVg1922888
I wrote a stupid-simple script to (theoretically) find the exact time that each pattern goes boring. But the reported value is either too early or too late for half of the soups, though it was fairly close. The reported value is given in the Fate column if it didn't match, but the correct value is in the Survival Time column:
Code: Select all
ID Survival time Fate
PWMDbAbCzxVg1922888 19,659,494 Jedi Bounce Trick. Reports 19659528
ffzCw74rqfSG282830 16,467,526 double eater
XytUUkhNEjEU1733576 16,467,565 double eater
f2q78V6BLJVc110684 11,473,182 Jedi Bounce Trick. Reports 11473232
sqDJksjsv2be67987 6,716,774 boat+blinker seed for boat-bit-catch fishhook
csVT6yWsknTs1413574 16,467,547 double eater
eQqxNVqvvGGj7310585 16,467,533 double eater
m_TrUG4Vs7PWcu9052339 5,931,548 moose antlers
m_8K2EvKyFdTUM4406744 11,473,247 Jedi Bounce Trick. Reports 11473297
m_TA7z9D9mrzhB2093399 16,467,539 double eater
m_3CeA2Dw9qnJU4825613 16,467,530 double eater
m_nuhZtFALmvdG990884 2,230,955 Jedi Bounce Trick. Reports 2231048
m_udaa49j2vesk1458281 16,467,621 double eater
m_7fXYYbMPHDwK5628897 6,398,315 inline eater. Reports 6396355
m_u8WcTYVqHgyB7469749 2,230,963 Jedi Bounce Trick. Reports 2231056
m_FKChZQAwZstz5289889 16,467,605 double eater
m_s9XMPbRrHs396971157 11,473,241 Jedi Bounce Trick. Reports 11473291
m_zs6BQXR4pa6x8735298 11,473,214 Jedi Bounce Trick. Reports 11473264
m_tL7jLK3rjfgk3183475 13,073,427 Temporary break in incoming gliders! Loaves acting as rocks
m_3jKN3ppmMKDs5207315 16,467,530 double eater
m_caUwwFUpUty38553753 6,398,284 inline eater. Reports 6398324
m_f6V6SFUHLtSB1853044 11,473,194 Jedi Bounce Trick. Reports 11473244
m_Jh9HWHAzuRg56667004 23,195,749 Jedi Bounce Trick.
m_wVVsTJ4sqNU88044873 16,467,547 double eater
m_NpdgExjat6gj5847577 16,467,526 double eater
m_3FAjhHSeXr7y8950894 11,473,208 Jedi Bounce Trick. Reports 11473920
m_iF3dyj4TGZfr7325686 16,467,543 double eater
m_R92NMFkEG87L4569127 1,316,271 Jedi Bounce Trick. Reports 1320960
m_ygAwL3DjiCFV4222147 6,640,965 Jedi Bounce Trick. Reports 6640980
m_qD3xWBCvGqYx4274410 4,456,329 beacon-based boat bit. Reports 4456351
m_k6vnErX8HzEQ3741051 4,456,355 beacon-based boat bit. Reports 4456377
m_h3EHiyAWwfSd7679502 16,467,607 double eater
m_nMsbDc9ZHHnS5571137 16,467,599 double eater
m_3bCekGYG38Wk3858406 2,230,956 Jedi Bounce Trick. Reports 2231049 (?!?)
m_HxNhbrdHwCBx8353767 2,453,915 Jedi Bounce Trick. Reports 2457600 (!?!)
m_wzcdgBGQmgZw3259104 2,230,966 Jedi Bounce Trick. Reports 2231059
m_TbPnqhhQVBWN1701610 11,473,234 Jedi Bounce Trick. Reports 11473920
m_QNs89A7zxyKv7266283 18,373,579 Jedi Bounce Trick. Reports 18373594
m_PiBE3h56h5xB312321 7,452,010 eater with head catching boat bit
m_xHqBBWGiPhdm5114891 11,473,200 Jedi Bounce Trick. Reports 11473920
m_7tKhznGbZpTi4539278 16,467,567 double eater
m_bmdAg3zKQXVe6460172 16,467,579 double eater
m_K7Xr4PDDkM768480388 12,323,906 Jedi Bounce Trick. Right for a change. (??!!)
m_y9tw2BRgbe2G8339140 11,473,213 Jedi Bounce Trick. Reports 11473920
m_KcL2Y5npn2HC9182100 11,174,660 Long-lasting initial lake. Pentadecathla, no hash match, novelty death via stale bread
m_dewL2tQAHsfM1562060 64,935,262 integral catching boat bit
m_AsRrkqLwMJuA9526739 16,467,583 double eater
m_55MBifjCkqyg1071727 9,307,907 Jedi Bounce Trick. Reports 9308160
m_wENPkZhTVTmx3581125 16,467,563 double eater
m_MqDCX5fsCpSu5292567 13,466,679 eater head near center catching boat bit. Reports 13470720
m_UmHjWqAadCMP1172787 36,118,082 beacon catching boat bit
m_4Xih6g5KGw8a825544 10,457,797 beacon catching boat bit. Pentadecathla, no hash matchThere's a lot of duplication -- a couple of the initial eight-switch-engine patterns are very likely, so they crop up again and again with slightly different time offsets. But there's one soup that lasts almost twice as long as the previous best known example of the breed -- over 64 million ticks:
Code: Select all
x = 32, y = 32, rule = B3/S23
bo4bobo2bo8bo2bobo4bo$2o2bo2bobob2obo2bob2obobo2bo2b2o$3b2ob4obo2bo2bo
2bob4ob2o$2bo2bo5b2ob4ob2o5bo2bo$b2obobo3bob2ob2ob2obo3bobob2o$3bo9bob
2obo9bo$obobobo3bob3o2b3obo3bobobobo$b2o6bo4bo2bo4bo6b2o$obo5b5obo2bob
5o5bobo$b2o4b7ob2ob7o4b2o$4bobob2ob2o6b2ob2obobo$4o4b5ob4ob5o4b4o$bob
2obob4o2b4o2b4obob2obo$4b3o2bo3b2o2b2o3bo2b3o$b3o2b3o2b10o2b3o2b3o$3b
3o3bob2ob4ob2obo3b3o$3b3o3bob2ob4ob2obo3b3o$b3o2b3o2b10o2b3o2b3o$4b3o
2bo3b2o2b2o3bo2b3o$bob2obob4o2b4o2b4obob2obo$4o4b5ob4ob5o4b4o$4bobob2o
b2o6b2ob2obobo$b2o4b7ob2ob7o4b2o$obo5b5obo2bob5o5bobo$b2o6bo4bo2bo4bo
6b2o$obobobo3bob3o2b3obo3bobobobo$3bo9bob2obo9bo$b2obobo3bob2ob2ob2obo
3bobob2o$2bo2bo5b2ob4ob2o5bo2bo$3b2ob4obo2bo2bo2bob4ob2o$2o2bo2bobob2o
bo2bob2obobo2bo2b2o$bo4bobo2bo8bo2bobo4bo!Here's the code I used to try and find the exact Time to Boringness, if anyone wants to use it -- or figure out why it doesn't work in half the cases. I think I'm all done with this little project for now, myself.
Code: Select all
# get-exact-timing-v1.0.py
# Version 1.0: support pentadecathla in final census by taking snapshots at a multiple of 15
# (15360 = 768*20 = 1024*15). Should also support pulsars and all periods below 7
import golly as g
import urllib2
import os
# already did f2q78V6BLJVc110684 http://catagolue.appspot.com//hashsoup/D8_4/f2q78V6BLJVc110684/b3s23
# and sqDJksjsv2be67987 http://catagolue.appspot.com//hashsoup/D8_4/sqDJksjsv2be67987/b3s23
# fake stability:
# m_tL7jLK3rjfgk3183475 http://catagolue.appspot.com//hashsoup/D8_4/m_tL7jLK3rjfgk3183475/b3s23
# ran all of
# PWMDbAbCzxVg1922888 http://catagolue.appspot.com//hashsoup/D8_4/PWMDbAbCzxVg1922888/b3s23
# ffzCw74rqfSG282830 http://catagolue.appspot.com//hashsoup/D8_4/ffzCw74rqfSG282830/b3s23
# XytUUkhNEjEU1733576 http://catagolue.appspot.com//hashsoup/D8_4/XytUUkhNEjEU1733576/b3s23
# csVT6yWsknTs1413574 http://catagolue.appspot.com//hashsoup/D8_4/csVT6yWsknTs1413574/b3s23
# eQqxNVqvvGGj7310585 http://catagolue.appspot.com//hashsoup/D8_4/eQqxNVqvvGGj7310585/b3s23
# m_TrUG4Vs7PWcu9052339 http://catagolue.appspot.com//hashsoup/D8_4/m_TrUG4Vs7PWcu9052339/b3s23
# m_8K2EvKyFdTUM4406744 http://catagolue.appspot.com//hashsoup/D8_4/m_8K2EvKyFdTUM4406744/b3s23
# m_TA7z9D9mrzhB2093399 http://catagolue.appspot.com//hashsoup/D8_4/m_TA7z9D9mrzhB2093399/b3s23
# m_3CeA2Dw9qnJU4825613 http://catagolue.appspot.com//hashsoup/D8_4/m_3CeA2Dw9qnJU4825613/b3s23
# m_nuhZtFALmvdG990884 http://catagolue.appspot.com//hashsoup/D8_4/m_nuhZtFALmvdG990884/b3s23
# m_udaa49j2vesk1458281 http://catagolue.appspot.com//hashsoup/D8_4/m_udaa49j2vesk1458281/b3s23
# m_7fXYYbMPHDwK5628897 http://catagolue.appspot.com//hashsoup/D8_4/m_7fXYYbMPHDwK5628897/b3s23
# m_u8WcTYVqHgyB7469749 http://catagolue.appspot.com//hashsoup/D8_4/m_u8WcTYVqHgyB7469749/b3s23
# m_FKChZQAwZstz5289889 http://catagolue.appspot.com//hashsoup/D8_4/m_FKChZQAwZstz5289889/b3s23
# m_s9XMPbRrHs396971157 http://catagolue.appspot.com//hashsoup/D8_4/m_s9XMPbRrHs396971157/b3s23
# m_zs6BQXR4pa6x8735298 http://catagolue.appspot.com//hashsoup/D8_4/m_zs6BQXR4pa6x8735298/b3s23
# m_tL7jLK3rjfgk3183475 http://catagolue.appspot.com//hashsoup/D8_4/m_tL7jLK3rjfgk3183475/b3s23
# completed 12/11 AM, before running into beacon boat bit with pulsars...
# m_3jKN3ppmMKDs5207315 http://catagolue.appspot.com//hashsoup/D8_4/m_3jKN3ppmMKDs5207315/b3s23
# m_caUwwFUpUty38553753 http://catagolue.appspot.com//hashsoup/D8_4/m_caUwwFUpUty38553753/b3s23
# m_f6V6SFUHLtSB1853044 http://catagolue.appspot.com//hashsoup/D8_4/m_f6V6SFUHLtSB1853044/b3s23
# m_Jh9HWHAzuRg56667004 http://catagolue.appspot.com//hashsoup/D8_4/m_Jh9HWHAzuRg56667004/b3s23
# completed 12/11 PM, then got a missing match on m_4Xih6g5KGw8a825544. Moved that to end, commented out.
# m_wVVsTJ4sqNU88044873 http://catagolue.appspot.com//hashsoup/D8_4/m_wVVsTJ4sqNU88044873/b3s23
# m_NpdgExjat6gj5847577 http://catagolue.appspot.com//hashsoup/D8_4/m_NpdgExjat6gj5847577/b3s23
# m_3FAjhHSeXr7y8950894 http://catagolue.appspot.com//hashsoup/D8_4/m_3FAjhHSeXr7y8950894/b3s23
# m_iF3dyj4TGZfr7325686 http://catagolue.appspot.com//hashsoup/D8_4/m_iF3dyj4TGZfr7325686/b3s23
# m_R92NMFkEG87L4569127 http://catagolue.appspot.com//hashsoup/D8_4/m_R92NMFkEG87L4569127/b3s23
# m_ygAwL3DjiCFV4222147 http://catagolue.appspot.com//hashsoup/D8_4/m_ygAwL3DjiCFV4222147/b3s23
# m_qD3xWBCvGqYx4274410 http://catagolue.appspot.com//hashsoup/D8_4/m_qD3xWBCvGqYx4274410/b3s23
# m_k6vnErX8HzEQ3741051 http://catagolue.appspot.com//hashsoup/D8_4/m_k6vnErX8HzEQ3741051/b3s23
outpath = "C:/PUT/YOUR/PATH/HERE"
s="""m_h3EHiyAWwfSd7679502 http://catagolue.appspot.com//hashsoup/D8_4/m_h3EHiyAWwfSd7679502/b3s23
m_nMsbDc9ZHHnS5571137 http://catagolue.appspot.com//hashsoup/D8_4/m_nMsbDc9ZHHnS5571137/b3s23
m_3bCekGYG38Wk3858406 http://catagolue.appspot.com//hashsoup/D8_4/m_3bCekGYG38Wk3858406/b3s23
m_HxNhbrdHwCBx8353767 http://catagolue.appspot.com//hashsoup/D8_4/m_HxNhbrdHwCBx8353767/b3s23
m_wzcdgBGQmgZw3259104 http://catagolue.appspot.com//hashsoup/D8_4/m_wzcdgBGQmgZw3259104/b3s23
m_TbPnqhhQVBWN1701610 http://catagolue.appspot.com//hashsoup/D8_4/m_TbPnqhhQVBWN1701610/b3s23
m_QNs89A7zxyKv7266283 http://catagolue.appspot.com//hashsoup/D8_4/m_QNs89A7zxyKv7266283/b3s23
m_PiBE3h56h5xB312321 http://catagolue.appspot.com//hashsoup/D8_4/m_PiBE3h56h5xB312321/b3s23
m_xHqBBWGiPhdm5114891 http://catagolue.appspot.com//hashsoup/D8_4/m_xHqBBWGiPhdm5114891/b3s23
m_7tKhznGbZpTi4539278 http://catagolue.appspot.com//hashsoup/D8_4/m_7tKhznGbZpTi4539278/b3s23
m_bmdAg3zKQXVe6460172 http://catagolue.appspot.com//hashsoup/D8_4/m_bmdAg3zKQXVe6460172/b3s23
m_K7Xr4PDDkM768480388 http://catagolue.appspot.com//hashsoup/D8_4/m_K7Xr4PDDkM768480388/b3s23
m_y9tw2BRgbe2G8339140 http://catagolue.appspot.com//hashsoup/D8_4/m_y9tw2BRgbe2G8339140/b3s23
m_KcL2Y5npn2HC9182100 http://catagolue.appspot.com//hashsoup/D8_4/m_KcL2Y5npn2HC9182100/b3s23
m_dewL2tQAHsfM1562060 http://catagolue.appspot.com//hashsoup/D8_4/m_dewL2tQAHsfM1562060/b3s23
m_AsRrkqLwMJuA9526739 http://catagolue.appspot.com//hashsoup/D8_4/m_AsRrkqLwMJuA9526739/b3s23
m_55MBifjCkqyg1071727 http://catagolue.appspot.com//hashsoup/D8_4/m_55MBifjCkqyg1071727/b3s23
m_wENPkZhTVTmx3581125 http://catagolue.appspot.com//hashsoup/D8_4/m_wENPkZhTVTmx3581125/b3s23
m_MqDCX5fsCpSu5292567 http://catagolue.appspot.com//hashsoup/D8_4/m_MqDCX5fsCpSu5292567/b3s23
m_4Xih6g5KGw8a825544 http://catagolue.appspot.com//hashsoup/D8_4/m_4Xih6g5KGw8a825544/b3s23
m_UmHjWqAadCMP1172787 http://catagolue.appspot.com//hashsoup/D8_4/m_UmHjWqAadCMP1172787/b3s23"""
# The second-to-last one caused trouble -- no match
slines = s.split("\n")
for item in slines:
name,url = item.split(" ")
response = urllib2.urlopen(url)
html = response.read()
index = html.index("\n")
pat = g.parse(html[index+1:])
g.new("Test")
g.setalgo("HashLife")
g.setbase(2)
g.setstep(10)
r = [-4080, -4080, 8192, 8192]
g.putcells(pat)
prevhash=g.hash(r)
prevgen = "0"
g.step()
g.step()
g.step()
g.step()
g.step()
g.step()
g.step()
g.step()
g.step()
curhash = g.hash(r)
curgen = g.getgen()
count=1
toobig=0
while prevhash != curhash:
prevhash = curhash
prevgen = curgen
g.step()
g.step()
g.step()
g.step()
g.step()
g.step()
g.step()
g.step()
g.step()
g.step()
g.step()
g.step()
g.step()
g.step()
g.step()
curhash = g.hash(r)
curgen = g.getgen()
count += 1
if count%10==0:
g.show(str(count))
g.update()
if count==10000:
toobig=1
break
# g.note(str([prevhash, prevgen, curhash, curgen]))
if toobig==0:
lookup={}
g.show("Changing the step to 2^0. Sorry, this may take a while.")
g.setstep(0)
g.show("Collecting hashes for boring phases...")
for i in range(16384):
lookup[i]=g.hash(r)
g.run(1)
if i%64==0:
g.show(str(16384-i))
g.update()
g.new("Test")
g.setalgo("HashLife")
g.setbase(2)
g.setstep(10)
g.putcells(pat)
targetT = (count-2)*15 # go back to the last time the hashes _didn't_ match
for i in range(targetT):
g.step()
if i%64 == 0:
g.show("Getting back to key step. Steps remaining: " + str(targetT-i))
g.update()
g.duplicate()
found=0
for i in range(16384):
if i%4==0:
g.show("Checking phase " + str(i))
g.update()
if g.hash(r)==lookup[i]:
eon=g.getgen()
g.dellayer()
g.save(os.path.join(outpath,name + "_" + eon + ".mc.gz"),"mc.gz")
found=1
break
g.run(1)
if found==0:
g.note("Something happened that hadn't ought to happen.\n" \
"No match was found for any of the 15360 phases,\n" \
"plus an extra 1024 for good measure,\n" \
"even though a match was found on the previous pass.")
g.show("Now loading next kaleidoscope after '" + name + "'.")
g.update()
else: # best to look at this one manually, it's going on suspiciously long
g.save(os.path.join(outpath,name + "_unknown300Kplus.mc.gz"),"mc.gz")