組み合わせ
今、N個の2値変数がある。それが作るの組み合わせを発生させて順次、処理するとする
public static void hoge(int numval){ int v=numval; int[] altlist = new int[v]; int[] one = new int[v]; for(int i=0;i<v;i++){ altlist[i]=0; if(i==0){ one[i]=1; }else{ one[i]=0; } } int sum = 0; while(sum<v){ //altlistにはn個の変数の値が格納されている //それを用いて必要な処理をする //altlistの更新 sum=0; for(int i=0;i<v;i++){ sum+=altlist[i]; } addNshin(altlist,one,2); } } //list表示のn進数の加算 public static void addNshin(int[] list1,int[] list2, int n){ int kuriage = 0; for(int i=0;i<list1.length;i++){ if(list1[i] + list2[i]+ kuriage <n){ list1[i]+=list2[i] + kuriage; kuriage=0; }else{ list1[i] = list1[i]+list2[i] + kuriage -n; kuriage = 1; } } }