       Re: shuffling (randomizing) a series

• To: mathgroup at smc.vnet.net
• Subject: [mg52896] Re: [mg52857] shuffling (randomizing) a series
• From: Sseziwa Mukasa <mukasa at jeol.com>
• Date: Thu, 16 Dec 2004 03:40:32 -0500 (EST)
• References: <200412150926.EAA10600@smc.vnet.net>
• Sender: owner-wri-mathgroup at wolfram.com

```On Dec 15, 2004, at 4:26 AM, George Szpiro wrote:

> Hello,
>
> I would like to put a series of numbers (of the order of 10^7 numbers)
> into
> random order, i.e., to shuffle it. In Excel I would simply add a
> column next
> to the column with the data, and then sort by the random number. But I
> could
> only do this for 64000 numbers. How can I do that in Mathematica for a
> file with a
> much larger series?

Without knowing the larger context of what you are doing it's hard to

Needs["DiscreteMath`Combinatorica``"]
p=RandomPermutation[10^7];

will give a random permutation of length 10^7.  It takes about a minute
to compute the permutation of that length on my machine.  You can then
use the permutation to access your list.  Assuming it's in a variable
named list:

Table[list[[p[[i]]]],{i,Length[list]}]

will return your list in random order.  If you prefer not to read the
entire list into memory, create the permutation as above then use an
expressions of the form

SetStreamPosition[strm,p[[n]]*(n-1)*size];

will return the nth element of the permuted list where size is the size
in bytes of each value and type is set appropriately.  Since I don't
know how the list is to be used it's hard to write expressions that
optimally trade off disk access versus memory use.

Regards,

Ssezi

```

• Prev by Date: Re: Re: defining variables as Real
• Next by Date: Re: about Package
• Previous by thread: Re: shuffling (randomizing) a series
• Next by thread: Re: Re: shuffling (randomizing) a series