Send Beginners mailing list submissions to
[email protected]
To subscribe or unsubscribe via the World Wide Web, visit
http://www.haskell.org/mailman/listinfo/beginners
or, via email, send a message with subject or body 'help' to
[email protected]
You can reach the person managing the list at
[email protected]
When replying, please edit your Subject line so it is more specific
than "Re: Contents of Beginners digest..."
Today's Topics:
1. slightly scramble list randomly (Dennis Raddle)
2. Re: slightly scramble list randomly (Brent Yorgey)
----------------------------------------------------------------------
Message: 1
Date: Sat, 22 Oct 2011 10:50:29 -0700
From: Dennis Raddle <[email protected]>
Subject: [Haskell-beginners] slightly scramble list randomly
To: Haskell Beginners <[email protected]>
Message-ID:
<CAKxLvorev+DxyH1UZqEi+p5Yi8uikELkQVEsLHW-x=+b8ee...@mail.gmail.com>
Content-Type: text/plain; charset=ISO-8859-1
I want to take a list of size N that starts in ascending order and
"slightly randomly scramble it"--- each element is moved within M
steps of its original position (there can be some tolerance for
slightly over M).
The application is a backtracking algorithm that produces random
solutions but tends to favor certain choices--at each node of the
search tree I can evaluate the goodness of each possible next step,
but I don't want the algorithm to always take the best choice. Just
roughly, much of the time.
Dennis
------------------------------
Message: 2
Date: Sat, 22 Oct 2011 16:43:34 -0400
From: Brent Yorgey <[email protected]>
Subject: Re: [Haskell-beginners] slightly scramble list randomly
To: Dennis Raddle <[email protected]>
Cc: Haskell Beginners <[email protected]>
Message-ID: <[email protected]>
Content-Type: text/plain; charset=us-ascii
One approach you might consider is randomly generating a sequence of
N*M or so swaps (i.e. generate an index i between 0 and (N-2), and
swap the elements at positions i and i+1). Of course, this way it is
possible to end up with an element very far away from its original
position, but with only a very small probability. "On average" I
would expect things to end up just moved around a bit like you want.
-Brent
On Sat, Oct 22, 2011 at 10:50:29AM -0700, Dennis Raddle wrote:
> I want to take a list of size N that starts in ascending order and
> "slightly randomly scramble it"--- each element is moved within M
> steps of its original position (there can be some tolerance for
> slightly over M).
>
> The application is a backtracking algorithm that produces random
> solutions but tends to favor certain choices--at each node of the
> search tree I can evaluate the goodness of each possible next step,
> but I don't want the algorithm to always take the best choice. Just
> roughly, much of the time.
>
> Dennis
>
> _______________________________________________
> Beginners mailing list
> [email protected]
> http://www.haskell.org/mailman/listinfo/beginners
------------------------------
_______________________________________________
Beginners mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/beginners
End of Beginners Digest, Vol 40, Issue 36
*****************************************