| author | Christian Urban <urbanc@in.tum.de> | 
| Mon, 18 Nov 2019 11:11:11 +0000 | |
| changeset 694 | f16459e2c490 | 
| parent 676 | 41fee9bd4150 | 
| child 765 | b66602e0b42d | 
| permissions | -rw-r--r-- | 
| 
365
 
9b71dead1219
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
1  | 
def concat(A: Set[String], B: Set[String]) : Set[String] =  | 
| 564 | 2  | 
for (x <- A ; y <- B) yield x ++ y  | 
| 
365
 
9b71dead1219
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
3  | 
|
| 
 
9b71dead1219
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
4  | 
def pow(A: Set[String], n: Int) : Set[String] = n match {
 | 
| 
 
9b71dead1219
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
5  | 
  case 0 => Set("")
 | 
| 
 
9b71dead1219
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
6  | 
case n => concat(A, pow(A, n- 1))  | 
| 
 
9b71dead1219
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
7  | 
}  | 
| 
 
9b71dead1219
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
8  | 
|
| 676 | 9  | 
val A = Set("aa", "a")
 | 
10  | 
val B = Set("aaa", "aaaa")
 | 
|
11  | 
concat(A, B).size // -> 3  | 
|
| 669 | 12  | 
|
13  | 
||
14  | 
||
| 650 | 15  | 
val A = Set("1", "2", "3", "")
 | 
16  | 
val B = Set("1", "2", "3", "4", "5", "6", "")
 | 
|
17  | 
concat(A, B).size // -> 28  | 
|
18  | 
pow(B, 3).size  | 
|
19  | 
||
20  | 
||
| 
365
 
9b71dead1219
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
21  | 
val A = Set("a", "b", "c", "d")
 | 
| 
 
9b71dead1219
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
22  | 
pow(A, 4).size // -> 256  | 
| 
 
9b71dead1219
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
23  | 
|
| 
 
9b71dead1219
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
24  | 
val B = Set("a", "b", "c", "")
 | 
| 572 | 25  | 
pow(B, 4)  | 
| 
365
 
9b71dead1219
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
26  | 
pow(B, 4).size // -> 121  | 
| 638 | 27  | 
pow(B, 3).size  | 
| 471 | 28  | 
|
29  | 
||
| 
397
 
cf3ca219c727
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
365 
diff
changeset
 | 
30  | 
val B2 = Set("a", "b", "c", "")
 | 
| 
 
cf3ca219c727
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
365 
diff
changeset
 | 
31  | 
pow(B2, 3).size // -> 40  | 
| 
 
cf3ca219c727
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents: 
365 
diff
changeset
 | 
32  | 
|
| 
365
 
9b71dead1219
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
33  | 
val C = Set("a", "b", "")
 | 
| 
 
9b71dead1219
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
34  | 
pow(C, 2)  | 
| 
 
9b71dead1219
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
35  | 
pow(C, 2).size // -> 7  | 
| 
 
9b71dead1219
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
36  | 
|
| 
 
9b71dead1219
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
37  | 
pow(C, 3)  | 
| 
 
9b71dead1219
updated
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
38  | 
pow(C, 3).size // -> 15  | 
| 525 | 39  | 
|
40  | 
||
| 572 | 41  | 
//val A = Set("a", "b", "c", "d")
 | 
42  | 
//pow(A, 4).size  | 
|
| 525 | 43  | 
|
| 572 | 44  | 
//val A = Set("a", "b", "c")
 | 
45  | 
//pow(A, 5).size  | 
|
| 525 | 46  | 
|
| 572 | 47  | 
//val A = Set("a", "b", "")
 | 
48  | 
//pow(A, 5).size  | 
|
| 564 | 49  | 
|
50  | 
||
| 572 | 51  | 
for (n <- (0 to 6).toList)  | 
52  | 
yield pow(B, n).size  | 
|
| 577 | 53  | 
|
54  | 
||
55  | 
||
56  | 
||
57  | 
||
58  | 
val A = Set("a", "b", "c")
 | 
|
59  | 
pow(A, 3)  | 
|
| 618 | 60  | 
pow(A, 3).size  | 
| 577 | 61  | 
|
62  | 
val B = Set("a", "b", "")
 | 
|
63  | 
pow(B, 4)  | 
|
| 618 | 64  | 
pow(B, 4).size  |