Рубрики

Способы выбора шариков так, чтобы был выбран хотя бы один шарик

Для заданного целого числа N задача состоит в том, чтобы найти способы выбрать несколько шариков из заданных N шариков так, чтобы был выбран хотя бы один шарик. Поскольку значение может быть большим, выведите значение по модулю 1000000007 .

Пример:

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

Подход: есть N шаров, и каждый шар может быть выбран или не выбран. Общее количество различных конфигураций составляет 2 * 2 * 2 *… * N. Мы можем написать это как 2 N. Но состояние, в котором мяч не выбран, должно быть вычтено из ответа. Таким образом, результат будет (2 N — 1)% 1000000007 .

Ниже приведена реализация вышеуказанного подхода:

C ++

// C ++ реализация подхода
#include <bits/stdc++.h>

using namespace std;

  

const int MOD = 1000000007;

  
// Функция для возврата количества
// способы выбора шаров

int countWays(int n)

{

  

    // Рассчитать (2 ^ n)% MOD

    int ans = 1;

    for (int i = 0; i < n; i++) {

        ans *= 2;

        ans %= MOD;

    }

  

    // Вычитаем только где

    // мяч не был выбран

    return ((ans - 1 + MOD) % MOD);

}

  
// Код драйвера

int main()

{

    int n = 3;

  

    cout << countWays(n);

  

    return 0;

}

Джава

// Java реализация подхода

class GFG 

{

static int MOD = 1000000007;

  
// Функция для возврата количества
// способы выбора шаров

static int countWays(int n)

{

  

    // Рассчитать (2 ^ n)% MOD

    int ans = 1;

    for (int i = 0; i < n; i++)

    {

        ans *= 2;

        ans %= MOD;

    }

  

    // Вычитаем только где

    // мяч не был выбран

    return ((ans - 1 + MOD) % MOD);

}

  
// Код драйвера

public static void main(String[] args) 

{

    int n = 3;

  

    System.out.println(countWays(n));

}

  
// Этот код предоставлен Rajput-Ji

python3

# Python3 реализация подхода

  

MOD = 1000000007

  
# Функция для возврата отсчета
# способы выбора шаров

def countWays(n):

      

    # Возврат ((2 ^ n) -1)% MOD

    return (((2**n) - 1) % MOD)

  
# Код драйвера

n = 3

print(countWays(n))

C #

// C # реализация подхода

using System;

      

class GFG 

{

static int MOD = 1000000007;

  
// Функция для возврата количества
// способы выбора шаров

static int countWays(int n)

{

  

    // Рассчитать (2 ^ n)% MOD

    int ans = 1;

    for (int i = 0; i < n; i++)

    {

        ans *= 2;

        ans %= MOD;

    }

  

    // Вычитаем только где

    // мяч не был выбран

    return ((ans - 1 + MOD) % MOD);

}

  
// Код драйвера

public static void Main(String[] args) 

{

    int n = 3;

  

    Console.WriteLine(countWays(n));

}
}

  
// Этот код предоставлен Rajput-Ji

Выход:

7

Рекомендуемые посты:

Способы выбора шариков так, чтобы был выбран хотя бы один шарик

0.00 (0%) 0 votes