This is a java program to generate and print all possible subsets using the method of Binary Counting method. The generations of subsets are done using binary numbers. Let there be 3 elements in the set, we generate binary equivalent of 2^3 = 8 numbers(0-7), where each bit in a number represents the presence/absence of element in the subset. The element is present if bit is 1, absent otherwise. 010 – only second element is present in the subset.
Here is the source code of the Java Program to Implement the Binary Counting Method to Generate Subsets of a Set. The Java program is successfully compiled and run on a Windows system. The program output is also shown below.
//This is a java program to generate all subsets of given set of numbers using binary counting method
import java.util.Random;
import java.util.Scanner;
public class Binary_Counting_Subsets
{
public static int[] binary(int N)
{
int[] binary = new int[(int) Math.pow(2, N)];
for (int i = 0; i < Math.pow(2, N); i++)
{
int b = 1;
binary[i] = 0;
int num = i;
while (num > 0)
{
binary[i] += (num % 2) * b;
num /= 2;
b = b * 10;
}
}
return binary;
}
public static void main(String args[])
{
Random random = new Random();
Scanner sc = new Scanner(System.in);
System.out.println("Enter the number of elements in the set: ");
int N = sc.nextInt();
int[] sequence = new int[N];
for (int i = 0; i < N; i++)
sequence[i] = Math.abs(random.nextInt(100));
System.out.println("The elements in the set : ");
for (int i = 0; i < N; i++)
System.out.print(sequence[i] + " ");
int[] mask = new int[(int) Math.pow(2, N)];
mask = binary(N);
System.out.println("\nThe permutations are: ");
for (int i = 0; i < Math.pow(2, N); i++)
{
System.out.print("{");
for (int j = 0; j < N; j++)
{
if (mask[i] % 10 == 1)
System.out.print(sequence[j] + " ");
mask[i] /= 10;
}
System.out.println("}");
}
sc.close();
}
}
Output:
$ javac Binary_Counting_Subsets.java
$ java Binary_Counting_Subsets
Enter the number of elements in the set:
5
The elements in the set :
78 35 5 10 15
The permutations are:
{ }
{ 78 }
{ 35 }
{ 78 35 }
{ 5 }
{ 78 5 }
{ 35 5 }
{ 78 35 5 }
{ 10 }
{ 78 10 }
{ 35 10 }
{ 78 35 10 }
{ 5 10 }
{ 78 5 10 }
{ 35 5 10 }
{ 78 35 5 10 }
{ 15 }
{ 78 15 }
{ 35 15 }
{ 78 35 15 }
{ 5 15 }
{ 78 5 15 }
{ 35 5 15 }
{ 78 35 5 15 }
{ 10 15 }
{ 78 10 15 }
{ 35 10 15 }
{ 78 35 10 15 }
{ 5 10 15 }
{ 78 5 10 15 }
{ 35 5 10 15 }
{ 78 35 5 10 15 }
Related posts:
Intro to Inversion of Control and Dependency Injection with Spring
Java Program to Find Minimum Number of Edges to Cut to make the Graph Disconnected
Array to String Conversions
Serialization và Deserialization trong java
Java Program to Implement Ternary Search Tree
Java Program to Implement Leftist Heap
Working with Kotlin and JPA
Java Program to Implement CountMinSketch
Hướng dẫn Java Design Pattern – Bridge
Convert String to int or Integer in Java
Recommended Package Structure of a Spring Boot Project
Test a REST API with Java
Java Program to Implement Hash Tables Chaining with Doubly Linked Lists
Java Program to Implement Suffix Array
Java Program to Perform integer Partition for a Specific Case
Guide to Java OutputStream
Guide to the Synchronized Keyword in Java
Java Program to Implement Hash Tables Chaining with List Heads
@Lookup Annotation in Spring
Java Program to Find Maximum Element in an Array using Binary Search
Custom Exception trong Java
Spring Data MongoDB Transactions
Java Program to Implement the String Search Algorithm for Short Text Sizes
Spring Security Form Login
Thao tác với tập tin và thư mục trong Java
The Registration Process With Spring Security
Java Program to Implement Min Hash
Spring Boot - Introduction
Java Program to Check whether Directed Graph is Connected using DFS
Java Program to Implement Graham Scan Algorithm to Find the Convex Hull
RestTemplate Post Request with JSON
Java – Write a Reader to File