- こちらの続き
- 0,1が作る長さLランダムな順列を作るには
L<-5
Nseq<-10
matrix(sample(c(0,1),L*Nseq,replace=TRUE),Nseq,L)
- これは、同一の順列が作られうる
- すべての順列を作るには以下のようにしたけれど、これだと、できる順列の順序に規則があって、ランダムに作成したことにならない
expand.grid(rep(list(c(0,1)),L))
expand.grid(rep(list(c(0,1)),L))[sample(1:2^L),]
- のように全順列を作った後で、順序を入れ替えればできる
> expand.grid(rep(list(c(0,1)),L))[sample(1:2^L),]
Var1 Var2 Var3 Var4 Var5
1 0 0 0 0 0
9 0 0 0 1 0
7 0 1 1 0 0
10 1 0 0 1 0
24 1 1 1 0 1
2 1 0 0 0 0
25 0 0 0 1 1
27 0 1 0 1 1
31 0 1 1 1 1
3 0 1 0 0 0
30 1 0 1 1 1
8 1 1 1 0 0
5 0 0 1 0 0
13 0 0 1 1 0
26 1 0 0 1 1
19 0 1 0 0 1
32 1 1 1 1 1
18 1 0 0 0 1
20 1 1 0 0 1
4 1 1 0 0 0
23 0 1 1 0 1
6 1 0 1 0 0
12 1 1 0 1 0
15 0 1 1 1 0
22 1 0 1 0 1
17 0 0 0 0 1
28 1 1 0 1 1
21 0 0 1 0 1
29 0 0 1 1 1
11 0 1 0 1 0
14 1 0 1 1 0
16 1 1 1 1 0