Problem with algorithm
Paul McGuire
ptmcg at austin.rr.com
Fri Apr 13 12:49:54 EDT 2007
On Apr 13, 10:41 am, "Paul McGuire" <p... at austin.rr.com> wrote:
> On Apr 13, 10:22 am, Michael Bentley <mich... at jedimindworks.com>
> wrote:
>
>
>
>
>
> > On Apr 13, 2007, at 9:19 AM, Paul McGuire wrote:
>
> > > If you just expand the length to five million* or so, one of those
> > > strings will contain all the works of Shakespeare.
>
> > Not likely, even with a tiny sampling of the works of Shakespeare:
>
> > # :-)
>
> > import string
> > import random
>
> > def main(bardText, maxTries=5000000):
> > tries = 0
> > while tries < maxTries:
> > tries += 1
> > attempt = []
> > for letter in bardText.lower():
> > if random.choice(
> > string.lowercase[:26]
> > + string.punctuation
> > + ' '
> > ) == letter:
> > attempt.append(letter)
> > else:
> > break
> > if len(attempt) >= 4:
> > print '%d: %s' % (
> > tries,
> > ''.join(attempt)
> > )
>
> > if __name__ == "__main__":
> > main("Alas, poor Yorick!")
>
> 5000000 << infinity
>
> Keep tryin'!
>
> Also, the OP's technique was not doing random string permutations, but
> generating an exhaustive list of all possible sequences from aaa... to
> zzz... . So I think the works of Shakespeare are *bound* to be in
> there somewhere.
>
> For proof, here's an extract from my sample code from running this
> exhaustive program with length=14:
>
> ...
> ALASPOORYORICG
> ALASPOORYORICH
> ALASPOORYORICI
> ALASPOORYORICJ
> ALASPOORYORICK
> ALASPOORYORICL
> ALASPOORYORICM
> ALASPOORYORICN
> ALASPOORYORICO
> ...
>
> -- Paul
> :) (too late for April 1, unfortunately)- Hide quoted text -
>
> - Show quoted text -
And apologies to the OP for beating a dead horse into the ground.
-- Paul
More information about the Python-list
mailing list