मान लें कि हमारे पास n तत्वों के साथ एक सरणी A है। हमें सरणी के सभी उपसमुच्चय के योग का कुल योग ज्ञात करना है। तो अगर सरणी A =[5, 6, 8] की तरह है, तो यह −
. जैसा होगा| सबसेट | <वें शैली="पाठ्य-संरेखण:केंद्र;">योगवें>|
|---|---|
| 5 | 5 |
| 6 | 6 |
| 8 | 8 |
| 5,6 | 11 |
| 6,8 | 14 |
| 5,8 | 13 |
| 5,6,8 | 19 |
| कुल योग | 76 |
चूंकि सरणी में n तत्व हैं, तो हमारे पास 2n उपसमुच्चय (खाली सहित) हैं। यदि हम इसे स्पष्ट रूप से देखें, तो हम पा सकते हैं कि प्रत्येक तत्व 2n-1 बार आता है
उदाहरण
#include<iostream>
#include<cmath>
using namespace std;
int totalSum(int arr[], int n) {
int res = 0;
for (int i = 0; i < n; i++)
res += arr[i];
return res * pow(2, n - 1);
}
int main() {
int arr[] = { 5, 6, 8 };
int n = sizeof(arr)/sizeof(arr[0]);
cout << "Total sum of the sum of all subsets: " << totalSum(arr, n) << endl;
} आउटपुट
Total sum of the sum of all subsets: 76