Advertisement
Guest User

Untitled

a guest
Apr 20th, 2019
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.03 KB | None | 0 0
  1. import java.util.*;
  2.  
  3. public class Main{
  4. public static void main(String[] args){
  5.  
  6. // ここではNの数を10個({0,1,2,3,4,5,6,7,8,9})と定義
  7. int N = 10;
  8.  
  9. // 部分集合の数(2のN乗)
  10. double n = Math.pow(2,N);
  11.  
  12. // (2のN乗-1)回ループ for (int i = 1; i<(1<<n); i++) {
  13. for(int i = 1; i < n; i++){
  14.  
  15. ArrayList<Integer> alist = new ArrayList<Integer>();
  16.  
  17. // N回ループ
  18. for(int j = 0; j < N; j++){
  19.  
  20. // 二進数iをjだけ右にビットシフトしたときの、iの1桁目と1とでビット論理積をとり、演算結果が1の場合に処理を行う
  21. if((1&i >> j) == 1){
  22. alist.add(j);
  23. }
  24.  
  25. }
  26.  
  27. // 動作確認のため、{0,1,...}形式で表示する
  28. System.out.print("{");
  29. for(int j = 0; j < alist.size(); j++) {
  30. System.out.print(alist.get(j));
  31. if( (j + 1) != alist.size()) {
  32. System.out.print(",");
  33. }
  34. }
  35. System.out.println("}");
  36.  
  37. }
  38. }
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement