last day (22 days later) » 

4:17 AM
:D
 
damnit, where's everyone else
 
They just haven't seen your message yet, I'll bet.
 
also, isn't it more appropriate for puzzling.se/a cellular automaton forum?
 
[shrugs]
 
meanwhile, my craptop is still dying running 10x of orlp's program
also, trying to figure out how to bitshift a 36 bit number
 
4:47 AM
also, someone needs to try and figure out why 36 is weird
as in why is 36 the only one in which the cycle length is something/3
*2^something/3
 
4:58 AM
PhiNotPi did make a good point in that 36 = 2^2 * 3^3, so maybe 100 = 2^2 * 5^5 will also be special.
Or perhaps 108 = 2^2 * 3^3.
 
but what about 2^2*1^2
also, 36=2^2*3^2
108=2^3*3^2
 
No, 72 = 2^3 * 3^2.
1 isn't a prime.
But these are all numbers we don't have data for.
 
*2^4
 
2^4 * 3^2 is 144.
 
hm
well, 36=2^2*3^2, 100=2^2*5^2
 
 
4 hours later…
8:53 AM
@El'endiaStarman I had a different theory
36 is a perfect square and a triangular number
 
9:50 AM
:( the next one of those is 1225
@orlp how long did it take for you to get the result for 60?
 
@somebody using the latest readable version in my answer and pypy - 12 sec
 
~200m iterations/sec?
 
I guess shrug
 
:( i should have dound pypy earlier
*found
@orlp if you add if lam % 100000000 == 0: print(sys.argv[1] + ' ' + str(lam))
does that mean you can see the minimum bound for 66?
also, apparently it shouldn't be more than ~8b
 
10:13 AM
@somebody print power every time it gets multiplied by 2 rather
lam keeps resetting to 0
 
oh
i've just been printing lam because i like seeing speed
 
and I'm not certain that gives a lower bound either
@somebody that slows you down thousandfold or smt
if you do it every iteration
 
hmm
@orlp apparently not, for me
 
@somebody if you print every iteration the algorithm will be slow
 
yeah, that says every 100m
^- up there
 
10:18 AM
there is no real way of getting lower bounds, really
for all we know, it might die out after 1000000000000000000 generations
so the cycle length is 1
 
but apparently max bound is 2^(n/2+1)
i.e. for 66 it
 
yes
 
*it's 2^34
can't take much longer than for 60
 
@somebody eehm
why is that the max bound?
 
n/2 max lit up squares
 
10:22 AM
so?
 
times to because depends if odd or even
*times 2
so 2^n/2 * 2 possible states
 
doesn't sound rigorous to me
 
rigorous?
 
they're not all odd or even
it changes from generation to generation
right?
 
yeah
but max states is that many
they can't possibly have odd and even at the same time
 
10:25 AM
so does N = 60 really nearly maximize the number of states it can be in?
 
btw, the odd numbers are easy to calculate
 
2147483646 vs 2147483648
 
and yes
 
@somebody what are the odd numbers?
 
f(2n+1) = 2f(n)
except for the ones that dies out
*die
 
10:29 AM
that doesn't make them easy to calculate...
e.g. 2*66+1 is odd
 
yes
 
but we don't know 66 yet
 
?
 
so 2*66+1 is also hard to calculate
 
yeah, but it's easy once you have 66
 
10:30 AM
"It's easy but you need to solve this unsolved problem."
doesn't count :)
"There is a nice relationship for odd numbers (except not really since some die out)."
that'd be better
 
many of them >65 are annoying, a lot are >500m :(
 
although the ones that die out are all 2^n-1
 
yeah
 
which makes sense, since they're perfect iterations of the sierpinski triangle
 
everyone's still wondering why 36 is weird
as in they're mostly 1...0... in binary, but 36, 73 etc are 101010101010(000)
or something
 
10:49 AM
@somebody I believe 66 is so much slower than 60 because it does not fit in a 64 bit integer anymore
 
oh
 
 
1 hour later…
12:09 PM
running two, 13b iterations total
still not finished
 
1:05 PM
The list I have
should probably gist that
 
wait, you don't need the odd numbers
2 2
4 6
6 14
8 14
10 62
12 126
14 30
16 30
18 1022
20 126
22 4094
24 2046
26 1022
28 32766
30 62
32 62
34 8190
36 174762
38 8190
40 2046
42 254
44 8190
46 16777214
48 4194302
50 510
52 134217726
54 2097150
56 1022
58 1073741822
60 2147483646
62 126
64 126
66
68 8388606
70
72 1022
74 2097150
76
78
80
82
84 510
86
88 4094
90 8190
92 2046
100
126 254
 
We do.
You haven't proven your conjectured formula.
Remember how everything seemed to have nice formulas, and then n = 36 came along?
 
well, it's applying for all of them
test n=73
 
Law of big numbers, mate.
If 36 is weird, perhaps other numbers are as well
 
yeah
also, i didn't prove it
someone else did
wait a sec
in The Nineteenth Byte, 10 hours ago, by PhiNotPi
It's the same rule, inside of itself.
(click the link)
 
1:41 PM
:( one at 10b, one at 12b
 
i'll have a few running overnight/tomorrow and see if i can get any more results
 
matches so good
except for n = 36
n=36 is so damn mysterious
 
n=36 is that divided by 3
for some reason the period is three times shorter than it is on that sequencs
also, you can pretty much write a faster one already that is mostly correct
maybe you could try verifying A160657 for the 18th term
rule is more complicated: born if 3/6 neighbours, survives if 1/2/5 neighbours
wait
same patern
*pattern
t turns out that these oscillators are, in a sense, emulating the “Rule 90” 1D cellular automaton
^- A160657 needs to be fixed
also, it needs a new definition
in the comments is the f(2n+1)=2f(n)
 
2:07 PM
Going to make a faster calculator
template<unsigned N>
void next(uint64_t* v) {
    constexpr unsigned words = N / 64;
    constexpr unsigned bits_in_last_word = N % 64;
    constexpr uint64_t mask =
        bits_in_last_word == 0 ? uint64_t(-1) :
        (uint64_t(1) << (bits_in_last_word)) - 1;

    uint64_t last_hi = 0;
    for (unsigned i = 0; i < words; ++i) {
        uint64_t next_lo = v[i + 1] << 63;
        uint64_t new_last_hi = v[i] >> 63;
        v[i] = (v[i] << 1) ^ (v[i] >> 1) ^ next_lo ^ last_hi;
        last_hi = new_last_hi;
The complicated part is done
Except that's incorrect .
for (unsigned i = 0; i < words; ++i) { should be for (unsigned i = 0; i < words - 1; ++i) {
 
++i?
 
hrm?
 
why not i=1 then i++?
wait, nvm
wait, why not?
um
 
for (a; b; c) { d } is the same as a; while (b) { d; c; }
 
also does template work like that?
 
2:16 PM
i++ here is the exact same as ++i
The reason it's a template is because it allows the compiler to do all the constant computation at compile-time
since N will be known at compile-time, because it's a template parameter
so the loop gets unrolled, etc
oh found another mistake
 
also, why uint64_t?
are we not gonna go over 128?
 
@somebody do you have a 128 bit CPU?
 
no
 
then why use 128 bit words :)
64 bit words perfectly fit into 1 register
 
but what if it goes over 2^64-1?
 
2:22 PM
then it will use two words
 
oh
i dont get how the remplate is supposed to work
nvm
uh
still don't get how it's supposed to work
how do you pass in 'n' at compile time?
 
next<120>(v)
 
2:41 PM
:( not even 100, and they're over 17b
 
hello
 
@orlp don't think constexpr works that way
 
@somebody template arguments are always known at compile time
 
and haven't seen template used that way
yeah, but all the constexpr examples i've seen are functions
nvm
 
So, we have the series 1,2,3,3,5,6,4...
 
2:49 PM
?
you mean oeis.org/A003558 ?
 
Yes
 
also, scroll up, oeis.org/A160657 is the same as even number of this
@PhiNotPi what about the series?
 
And f(2n) = 2 * (2^a(n) - 1) / k
 
also on the website linked above somewhere (in the comments, and kinda)
@PhiNotPi that pretty much means we can predict it, just need to figure out whyn=36 is weird
 
If a(n) is a composite number, xy (for some values of x and y)
 
2:53 PM
and home there is only one kind of weird outlier thing (i.e. the n=36 family)
 
Then f(2n) = 2 * (2^a(n) - 1) / k = 2 * (2^x-1)*(2^y-1) / k
 
*hope
 
Since the period is always an integer, we only have to worry about weird divisors when a(n) is a composite number
 
you mean even?
well, for the first one
weird divisors apply to 36, 73, 147 etc
well, good night, gonna leave 94 and 70 running overnight
 
For 36, f(18) = 18 = 2 * 3 * 3, the 2 allows it to have a wierd divisor
since 2^2-1 = 3, the value of 2^18-1 is divisible by 3
@somebody I don't think you were understanding me properly.
brb
 
3:23 PM
well, i know 36 is weird, and therefore 2*36+1 etc, but i didn't know why
 
yeah
but what has it got to do with 35?
*36
 
It explains why 2*36+1 is weird
 
yeah, i know, i saw that when you posted it
 
okay
 
3:26 PM
but that doesn't explain why 36 is weird in the first place
idk if there's anything weird with row 36 of sierpinski's gasket
maybe it has three parts or something?
or maybe it's to do with pascal's triangle row 36
 
@somebody Impossible
Right now I'm trying to figure out the connection between the A003558 sequence and the numbers
> Least number m such that 2^m == +- 1 (mod 2n + 1)
2^m - 1 == 0 (mod 2n + 1)
^ that's one of the two branches of the formula
but 2^m-1 is equal to 1/2 the cycle length
so maybe we can fill in...
generation/2 == 0 (mod 2n + 1)
 
?
 
That's from the sequence definition on OEIS
 
well, A160657 is every even term (except 36), odd terms can be found from the even ones, with the exception of the ones that die out
it says that it kinda simulates rule 90
 
I'm working on A003558 right now
generation/2 == -2 (mod 2n + 1) is the other branch
Then we end up with one of the two congruences...
generation/2 == 0 (mod width + 1)
generation/2 == -2 (mod width + 1)
For width = 4, it turn out the the second one is correct, since 6/2 == -2 mod 5
where 6 is the number of generations
 
3:46 PM
ok, got a new fast program to compute electron numbers
 
cool
 
compile with g++ -O2 -m64 -march=native -std=c++11 electron.cpp
 
but you don't use argc
 
correct
N needs to be known at compile time
so you edit the source :)
 
oh
 
3:51 PM
(this is so the compiler can optimize everything to the max)
so, let's see if we can crack 66
 
*you?
 
oh
 
2^34-2 is the predicted length
 
lol
only took 57 seconds
 
D:
 
3:53 PM
66 17179869182
 
66 is near max as well
also, why is your computer so fast?
 
the program is fast
 
Yep, it's 2^34-2
 
and my computer is just an i5 2600k or smt
i5-4670k
sorry
so pretty damn fast
 
but...
 
3:55 PM
welcome to C++ :P
 
my laptop is way slower
 
pypy is good, but not that good
did you compile with the right flags btw?
 
yeah
wonder how long it would take for your computer to do n=100
 
4:07 PM
70 68719476734
seems like we've got a ton of 'busy beaver's
 
2^36 - 2 fits the pattern
 
is there a conjecture for even numbers?
excluding n=36
everything except n = 36 fits?
 
all other terms fit?
 
yes
atm
 
4:13 PM
I would actually say oeis.org/A003558 is the best sequence to look at
with f(2n) = 2 * (2^a(n) - 1)
Maybe we can try checking 100 or 196 for weirdness?
 
/me starts waiting
um
 
100 might not terminate in any reasonable period of time
 
for me
but i can wait overnight
 
for anybody
2^51 - 2 is a long time
It'll take about 32768 times as long as 70
 
assuming it reaches the limit
 
4:24 PM
which it probably will
 
:(
 
if 70 took a minute, 100 might take over 20 days
 
we need to start a BOINC project :P
it's may be faster to use hashlife to 2^51 -2, then go backwards 2, 4, etc. iterations
 
 
1 hour later…
5:44 PM
78 1099511627774
confirmed
 
I'm not sure if that fits the pattern or not
Actually, yeah it does
What even numbers are we still missing?
 
6:02 PM
You guys have really taken this and run it with. I love it. :D
 
 
3 hours later…
8:42 PM
82, 94, 100
 
@orlp 121 still has a ? next to it.
 
:( doesn't look like 100 is gonna finish any time within this month
@orlp you forgot to add 78
to the gist
 
9:41 PM
70 68719476734
78 1099511627774
82 4398046511102
94 45812984490
dat 94 though
OOOOOOOOOOH
94 is another one
0b101010101010101010101010101010101010
 
OOOH.
94 = 2*47. ?????????
Well, there go all those theories!
And now, instead of one mystery, we have two mysteries. Which, actually, I kinda like more than just having one, because now we have more data. :P
 
dno
wouldn't it be really mysterious if only n = 36 was odd/
 
Quite.
@orlp ?
 
Where's the program to calculate a value? I think I may have found a pattern in the irregularities.
 
9:57 PM
@orlp
 
@somebody yes?
edit the number you want to calculate down below in main
 
Which language is this?
 
nvm, just trying to alert you
c++
 
then compile with g++ -O2 -m64 -march=native -std=c++11 electron.cpp
 
9:58 PM
it's super fast :)
that's why I managed to calculate 66, 70, etc
 
you lost me at "compile with g++..."
 
@CᴏɴᴏʀO'Bʀɪᴇɴ you're on linux?
 
or windows?
 
follow this guide to get a C++ compiler
 

  last day (22 days later) »