1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
ml <- sample(seq(6,20,2), 20, replace=TRUE)
v.base <- c("(", ")")
fair <- 1
simple_brackets <- function(x)
{
v.s <- sample(v.base, x, TRUE)
return(v.s)
}
fair_brackets <- function(x)
{
v.f <- character(x)
v.base <- c("(", ")")
ob <- ifelse(v.base=="(",0.75,0.25)
cb <- ifelse(v.base==")",0.75,0.25)
v.f[1] = "("
for(i in 2:(x-1))
{
if(v.f[i-1] == "(") v.f[i] <- sample(v.base, 1, TRUE, prob = cb)
if(v.f[i-1] == ")") v.f[i] <- sample(v.base, 1, TRUE, prob = ob)
}
v.f[x] <- ")"
return(v.f)
}
for (lenstr in ml)
{
v.chr <- character(lenstr)
if(fair == 1) v.chr <- fair_brackets(lenstr)
else v.chr <- simple_brackets(lenstr)
counter<-0
for(ch in v.chr)
{
if(ch == ")" ) counter <- counter - 1;
if (counter < 0) break;
if(ch == "(" ) counter <- counter + 1;
}
ok <- ifelse(counter == 0,'OK', 'NOT OK')
print(paste(paste0(v.chr, collapse=""), ok))
}
|