# Program to calculate expected increase in price P after N consecutive days

• Last Updated : 21 Apr, 2021

Given an integer P, that increases either by A or B with 50% probability each, in the next N consecutive days, the task is to find the expected value after N days.

Examples:

Input: P = 1000, A = 5, B = 10, N = 10
Output: 1075
Explanation:
Expected increased value after N consecutive days is equal to:
P + N * (a + b) / 2 = 1000 + 10 Ã— 7.5 = 1000 + 75 = 1075.

Input: P = 2000, a = 10, b = 20, N = 30
Output: 2450

Approach: Follow the steps to solve the problem:

1. Expected value of increase each day = (Probability of increase by A) * A + (Probability of value increase by B) * B = (1 / 2) * A + (1 / 2) * B.
2. Therefore, increase in value after one day = (a + b) / 2.
3. Therefore, increase in value after N days = N * (a + b) / 2.
4. Therefore, increased value after N days = P + N * (a + b) / 2.
5. Print the increased value as the required answer.

Below is the implementation of the above approach:

## C++

 `// C++ program for` `// the above approach` `#include ` `using` `namespace` `std;`   `// Function to find the increased` `// value of P after N days` `void` `expectedValue(``int` `P, ``int` `a,` `                   ``int` `b, ``int` `N)` `{` `    ``// Expected value of the` `    ``// number P after N days` `    ``double` `expValue` `        ``= P + (N * 0.5 * (a + b));`   `    ``// Print the expected value` `    ``cout << expValue;` `}`   `// Driver Code` `int` `main()` `{` `    ``int` `P = 3000, a = 20, b = 10, N = 30;` `    ``expectedValue(P, a, b, N);`   `    ``return` `0;` `}`

## Java

 `// Java program for the above approach` `class` `GFG{`   `// Function to find the increased` `// value of P after N days` `static` `void` `expectedValue(``int` `P, ``int` `a,` `                          ``int` `b, ``int` `N)` `{` `    `  `    ``// Expected value of the` `    ``// number P after N days` `    ``double` `expValue = P + (N * ``0.5` `* (a + b));`   `    ``// Print the expected value` `    ``System.out.print(expValue);` `}`   `// Driver code` `public` `static` `void` `main(String[] args)` `{` `    ``int` `P = ``3000``, a = ``20``, b = ``10``, N = ``30``;` `    ``expectedValue(P, a, b, N);` `}` `}`   `// This code is contributed by abhinavjain194`

## Python3

 `# Python3 program for` `# the above approach`   `# Function to find the increased` `# value of P after N days` `def` `expectedValue(P, a, b, N):` `    `  `    ``# Expected value of the` `    ``# number P after N days` `    ``expValue ``=` `P ``+` `(N ``*` `0.5` `*` `(a ``+` `b))`   `    ``# Print the expected value` `    ``print``(``int``(expValue))`   `# Driver Code` `if` `__name__ ``=``=` `'__main__'``:` `    `  `    ``P ``=` `3000` `    ``a ``=` `20` `    ``b ``=` `10` `    ``N ``=` `30` `    `  `    ``expectedValue(P, a, b, N)` `    `  `# This code is contributed by ipg2016107`

## C#

 `// C# program for the above approach` `using` `System;`   `class` `GFG{` `    `  `// Function to find the increased` `// value of P after N days` `static` `void` `expectedValue(``int` `P, ``int` `a, ` `                          ``int` `b, ``int` `N)` `{` `    `  `    ``// Expected value of the` `    ``// number P after N days` `    ``double` `expValue = P + (N * 0.5 * (a + b));`   `    ``// Print the expected value` `    ``Console.Write(expValue);` `}`   `// Driver code` `static` `void` `Main()` `{` `    ``int` `P = 3000, a = 20, b = 10, N = 30;` `    ``expectedValue(P, a, b, N);` `}` `}`   `// This code is contributed by abhinavjain194`

## Javascript

 ``

Output:

`3450`

Time Complexity: O(1)
Auxiliary Space: O(1)

My Personal Notes arrow_drop_up
Related Articles