RE: choose with replacement
- To: mathgroup@smc.vnet.net
- Subject: [mg10829] RE: [mg10800] choose with replacement
- From: Jean-Marie THOMAS <jmthomas@cybercable.tm.fr>
- Date: Tue, 10 Feb 1998 21:01:42 -0500
- Return-Receipt-To: Jean-Marie THOMAS <jmthomas@cybercable.tm.fr>
Try this first: some of these functions might be a direct answer to your
problem:
<<DiscreteMath`Combinatorica`
?RandomPermutation
"RandomPermutation[n] gives a random permutation of n elements."
?RandomPermutation1
"RandomPermutation1[n] sorts random numbers to generate a random \
permutation."
?RandomPermutation2
"RandomPermutation2[n] uses random transpositions to generate random \
permutations."
If they do not, use the following code - which is far from being
optimized!
randomListTransposer[myList_List]:=Module[{ill,il,r,ol={}},
il=Length@myList;
ill=myList;
While[il>0,
r=Random[Integer,{1,il}];
AppendTo[ol,Part[ill,r]];
ill=Delete[ill,r];
il-=1];
Return[ol]]
Hope this helps,
-----------------------------------------------
Jean-Marie THOMAS
Conseil et Audit en Ingenierie de Calcul jmthomas@cybercable.tm.fr
+33 (0)3 88 32 93 64
www.cybercable.tm.fr/~jmthomas
=======================
-----Message d'origine-----
De: Daniel Sanders [SMTP:dman777@earthlink.net] Date: jeudi 5 fevrier
1998 06:59
A: mathgroup@smc.vnet.net
Objet: [mg10800] choose with replacement
Hi,
I'm new to Mathematica programming, and I'm a bit stumped to find the
code for the following maybe someone has a suggestion.
Simply put, I want to make a new list from an existing finite list by
randomly choosing an element from list_1 to be included in list_2.
List_1 would loose that element, and the random number generator would
be reduced to correspond to the new length of the old list_1. This
process would continue untill list_1 has no elements, and list_2 has
all the elements of list_1 reordered.
I have a feeling that this is not hard to do, but I can't seem to get it
right. Any suggestions?
Dan