6 comments

[ 2.5 ms ] story [ 25.8 ms ] thread
That's kind of interesting - I wonder why that sequence is off and yet:

0,1,2,4,8,16,32,64,128,256

and

0,1,2,4,8,16,32,64,128,256,512,1024

come back accurately.

I wonder why...

Because you need to beat Alpha over the head with data in order to convince it to say "well, maybe the first value just doesn't fit the pattern".

As a mathematician, I'd say that Alpha's approach here is entirely reasonable.

right, but my point was that if you give it one less data point, i.e.

0,1,2,4,8,16,32,64,128,256

it detects the pattern, but if you tack on the 512 it duffs it.

I think b/c it's using the difference table method in both cases. Where as, if the pattern starts with 1, it recognizes it as powers of 2.

R code:

    solver <- function(x) {
        print(x)
        if (length(x) == 0 || all(x == 0))
            0
        else
            x[length(x)] + solver(diff(x))
    }

    solver(c(0,1,2,4,8,16,32,64,128)) #=> 255
    solver(c(0,1,2,4,8,16,32,64,128,256)) #=> 512
    solver(c(0,1,2,4,8,16,32,64,128,256,512)) #=> 1023
    solver(c(0,1,2,4,8,16,32,64,128,26,512,1024)) #=> 2048