Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

Re^3: Challenge: Simple algorithm for continuing series of integers

by TimToady (Parson)
on Oct 20, 2008 at 03:19 UTC ( [id://718128]=note: print w/replies, xml ) Need Help??


in reply to Re^2: Challenge: Simple algorithm for continuing series of integers
in thread Challenge: Simple algorithm for continuing series of integers

It would be relatively easy to make a rule that new guessers are allowed to work only on the unguessable residue left over from previous versions. And of course, there's little reason to install guessers that would be opaque to most readers, and I expect that the writer of the program should certainly name the series or the generator function such that it is clear to the reader.

So actually, I was serious in my proposal that we make it easy to pull well-named generator functions from a well-known database, and then the numbers on the front are just examples of the first few values in the series--the real meat is in the function name. But a name is a useful abstraction, compared to forcing people to write complicated closures that might be just as unreadable as * is. And the standard function derived in a standard fashion may well be more optimizable than the user-written equivalent, where various idiosyncratic usages may make optimization difficult.

So that's why the spec currently limits * guessing to some very simple cases, and I have no problem with taking a very conservative approach to adding more guessers.

  • Comment on Re^3: Challenge: Simple algorithm for continuing series of integers

Replies are listed 'Best First'.
Re^4: Challenge: Simple algorithm for continuing series of integers
by BrowserUk (Patriarch) on Oct 20, 2008 at 04:06 UTC
    compared to forcing people to write complicated closures that might be just as unreadable as * is. ... the spec currently limits * guessing to some very simple cases

    If the guesser is limited to simple cases, then the closures it would replace, would be simple also. By the time you get to the point where the closure would give any reasonably competent programmer a problem to understand, the chances of the guesser, guessing correctly are close to nil.

    Even the simplest input to the guesser, say: 1,2,3 currently elicits a gnat's genitalia off of 13,000 matches at the OEIS.

    Adding a fourth term 4 cuts that to 5,500; a fifth gets you 3,500; a 6th, 2,500; a 7th, 2,000; an 8th 2,000. And you're still close to 1,500 by the time you have specified the first 9 terms.

    I didn't keep going to see how many leads you'd have to specify to uniquely identify even this simplest of sequences, but I tried a few others:

    1. 1,4,9,16,25 - 125 possibles.
    2. 1,2,4,8,16 - 346 possibles.
    3. 1,3,5,7,9 - 233 possibles.
    4. 2,4,6,8,10 - 213 possibles.
    5. 1,10,100,1000 - 36 possibles.

    It's frankly hard to see the win from having a "simple" guesser. And hard to see the possibility of something more accurate.

    Especially when it would be so cheap and simple to provide the top ten or 100 most common sequences named as built-ins, or in a core module.


    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://718128]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others scrutinizing the Monastery: (4)
As of 2024-04-24 05:36 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found