Skip to content
Related Articles

Related Articles

Ways to choose balls such that at least one ball is chosen
  • Last Updated : 10 Sep, 2019

Given an integer N, the task is to find the ways to choose some balls out of the given N balls such that at least one ball is chosen. Since the value can be large so print the value modulo 1000000007.

Example:

Input: N = 2
Output: 3
The three ways are “*.”, “.*” and “**” where ‘*’ denotes
the chosen ball and ‘.’ denotes the ball which didn’t get chosen.

Input: N = 30000
Output: 165890098

Approach: There are N balls and each ball can either be chosen or not chosen. Total number of different configurations is 2 * 2 * 2 * … * N. We can write this as 2N. But the state where no ball is chosen has to be subtracted from the answer. So, the result will be (2N – 1) % 1000000007.



Below is the implementation of the above approach:

C++




// C++ implementation of the approach
#include <bits/stdc++.h>
using namespace std;
  
const int MOD = 1000000007;
  
// Function to return the count of
// ways to choose the balls
int countWays(int n)
{
  
    // Calculate (2^n) % MOD
    int ans = 1;
    for (int i = 0; i < n; i++) {
        ans *= 2;
        ans %= MOD;
    }
  
    // Subtract the only where
    // no ball was chosen
    return ((ans - 1 + MOD) % MOD);
}
  
// Driver code
int main()
{
    int n = 3;
  
    cout << countWays(n);
  
    return 0;
}

Java




// Java implementation of the approach
class GFG 
{
static int MOD = 1000000007;
  
// Function to return the count of
// ways to choose the balls
static int countWays(int n)
{
  
    // Calculate (2^n) % MOD
    int ans = 1;
    for (int i = 0; i < n; i++)
    {
        ans *= 2;
        ans %= MOD;
    }
  
    // Subtract the only where
    // no ball was chosen
    return ((ans - 1 + MOD) % MOD);
}
  
// Driver code
public static void main(String[] args) 
{
    int n = 3;
  
    System.out.println(countWays(n));
}
  
// This code is contributed by Rajput-Ji

Python3




# Python3 implementation of the approach
  
MOD = 1000000007
  
# Function to return the count of 
# ways to choose the balls
def countWays(n):
      
    # Return ((2 ^ n)-1) % MOD
    return (((2**n) - 1) % MOD)
  
# Driver code
n = 3
print(countWays(n))

C#




// C# implementation of the approach
using System;
      
class GFG 
{
static int MOD = 1000000007;
  
// Function to return the count of
// ways to choose the balls
static int countWays(int n)
{
  
    // Calculate (2^n) % MOD
    int ans = 1;
    for (int i = 0; i < n; i++)
    {
        ans *= 2;
        ans %= MOD;
    }
  
    // Subtract the only where
    // no ball was chosen
    return ((ans - 1 + MOD) % MOD);
}
  
// Driver code
public static void Main(String[] args) 
{
    int n = 3;
  
    Console.WriteLine(countWays(n));
}
}
  
// This code is contributed by Rajput-Ji
Output:
7

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up
Recommended Articles
Page :