All pastes #431702 Raw Edit

Plouj

public java v1 · immutable
·published 2007-04-09 21:02 UTC
rendered paste body
          public static <E> Set<Set<E>> powerset(Set<E> givenSet) {                  LinkedList<E> givenSetList = new LinkedList<E>(givenSet);                  Set<Set<E>> powerSet = new LinkedHashSet<Set<E>>();                  int subsetCount = (int)Math.pow(2,givenSet.size());                  for (int i = 0; i < subsetCount; i++ ) {                          Set<E> subSet = new LinkedHashSet<E>();                          //System.out.println("i="+i+" ("+Integer.toBinaryString(i)+")");                          for (E e: givenSetList) {                                  int index = givenSetList.indexOf(e);                                  int temp = i / (int)Math.pow(2,index);                                  //System.out.println("temp="+temp);  /*                                  int temp = (i & (int)Math.pow(2,givenSetList.indexOf(e)) )                                          % (int)Math.pow(2,givenSetList.indexOf(e));                                                  " 2^"+                                                  givenSetList.indexOf(e)+                                                  "="+                                                  (int)Math.pow(2,givenSetList.indexOf(e)));                                                  */                                  if ( temp % 2 == 1) {                                          subSet.add(e);                                  }                          }                          //System.out.println("one subset is "+subSet);                          powerSet.add(subSet);                  }                  return powerSet;          }