কম্পিউটার

সমস্ত অ্যারে উপাদান বরাদ্দ করার জন্য সর্বনিম্ন মান খুঁজুন যাতে অ্যারে পণ্য C++ এ আরও বড় হয়


ধরুন আমাদের n উপাদানের একটি অ্যারে আছে। প্রদত্ত অ্যারের সমস্ত উপাদান কিছু ন্যূনতম মান x এ আপডেট করুন, যেমন arr[i] =x। যেমন নতুন অ্যারের সমস্ত উপাদানের গুণফল প্রাথমিক অ্যারের সমস্ত উপাদানের গুণফলের থেকে কঠোরভাবে বড়, যেখানে i <=arr[i] <=10^10, এবং 1 <=n <=10^5। সুতরাং যদি অ্যারের মত হয় [4, 2, 1, 10, 6]। তাই 4 হল ক্ষুদ্রতম উপাদান। 4 * 4 * 4 * 4 * 4> 4 * 2 * 1 * 10 * 6

যেমন আমরা জানি যে n উপাদানের গুণফল হল P। আমাদের যদি P-এর nতম মূল খুঁজে বের করতে হয়, গুণফলের nম মূল বের করতে, আমরা কেবল অ্যারের n উপাদানগুলির লগের যোগফল থেকে n কে ভাগ করব এবং তারপর অ্যান্টিলগের সিলিং। ফলাফল হবে।

res =ceil(antilog(log(x) / 10))

অথবা res =ceil(10 ^ (log(x) / 10))

উদাহরণ

#include <iostream>
#include <cmath>
#define EPS 1e-15
using namespace std;
long long findMinValue(long long arr[], long long n) {
   long double sum = 0;
   for (int i=0; i<n; i++)
   sum += (long double)log10(arr[i])+EPS;
   long double xl = (long double)(sum/n+EPS);
   long double res = pow((long double)10.0, (long double)xl) + EPS;
   return (long long)ceil(res+EPS);
}
int main() {
   long long arr[] = {4, 2, 1, 10, 6};
   long long n = sizeof(arr)/sizeof(arr[0]);
   cout << "Min value is: "<< findMinValue(arr, n);
}

আউটপুট

Min value is: 4

  1. C++ ব্যবহার করে সমস্ত উপাদান 0 করতে একটি অ্যারেতে ন্যূনতম সংখ্যক অপারেশন।

  2. একটি অ্যারে উপাদান খুঁজুন যাতে সমস্ত উপাদান এটি দ্বারা c++ ব্যবহার করে বিভাজ্য হয়

  3. একটি অ্যারেতে সমস্ত জোড়া (a, b) খুঁজুন যেমন একটি % b =k C++ এ

  4. C++-এ অ্যারের সমস্ত উপাদান একই করতে ন্যূনতম ডিলিট অপারেশন।