package com.plectix.simulator.stories.weakcompression.util;
import java.util.ArrayList;
import java.util.List;
import com.plectix.simulator.staticanalysis.stories.MarkOfEvent;
public class MarksGenerator {
public static List<List<MarkOfEvent>> generateLists(int n) {
List<List<MarkOfEvent>> list = new ArrayList<List<MarkOfEvent>>();
for (int i = 0; i < Math.pow(2, n); i++) {
List<MarkOfEvent> tmp = new ArrayList<MarkOfEvent>();
list.add(tmp);
}
list = generate(n, list);
list.remove(list.size() - 1);
list.remove(0);
return list;
}
private static List<List<MarkOfEvent>> generate(int n,
List<List<MarkOfEvent>> list) {
int i = 0;
if (n == 1) {
for (List<MarkOfEvent> list2 : list) {
list2
.add((i % 2 == 0) ? MarkOfEvent.KEPT
: MarkOfEvent.DELETED);
i++;
}
return list;
} else {
for (List<MarkOfEvent> list2 : list) {
list2
.add(((i % Math.pow(2, n)) < Math.pow(2, n - 1)) ? MarkOfEvent.KEPT
: MarkOfEvent.DELETED);
i++;
}
return generate(--n, list);
}
}
public static void main(String[] args) {
generateLists(20);
}
}