[R] Randomly rearranging elements of sets
jshort
jshort1985 at gmail.com
Thu Jan 28 00:06:05 CET 2010
Hi
I've recently been trying to solve some probability questions in R, but am
having trouble.
This is one question thats been causing some hair loss:
Given the set of integers S = {1,2,3,4,5,6,7,8,9,10}, create a function F(S)
that uniformly and randomly rearranges these integers.
For example, in one instance, we might have F(S) = {2,3,9,7,5,6,1,8,10,4}.
........................................................................................................................
Here is what I've managed so far with regards to solving the above.
The first part of my program is just the following (which is flawless):
"w = matrix(0, ncol = 10, nrow = 1, byrow = T)
for( i in 1:1) {
(m = runif(1,0,10))
for(j in 1:10) { if (j-1 < m & m < j)
w[1,i] = j }"
As you can see, I first define my output (called w) as "1 by 10" matrix.
Afterwards, I randomly assign the first integer '1' to one of the positions
on 1-10 (the function "runif(1,0,10)" lets me do this so that each position
is equally likely).
The next part of my program is where the difficulty lies. We need to
randomly assign the remaining 9 integers. The program should look something
like the following:
for( i in 2:10) {
(q = runif(1,0,10)
{ if(condition(i)) w[1,i] = xxx, else (repeat with new q-value untill
condition(i) is met)
}
I know how to fill one of the details in the above. Clearly "condition(i)"
should something like the following:
for(e in 2:10) { if (e-1 < q & q < e) &
(for(s in 1:i-1) { e != w[1,s] } w[1,i] = e
The REAL issue is filling the exact details of the "else" condition. Clearly
I want to tell R that I wish to repeat with a new random number "q" until
condition(i) is met, but I don't know how to tell R this.
Any help with this would be much appreciated.
--
View this message in context: http://n4.nabble.com/Randomly-rearranging-elements-of-sets-tp1312276p1312276.html
Sent from the R help mailing list archive at Nabble.com.
More information about the R-help
mailing list