এই সমস্যাতে, আমাদের দুটি মান S এবং N দেওয়া আছে যা নদীর ধারার গতি (কিমি/ঘণ্টা) এবং আপস্ট্রিম ও ডাউনস্ট্রিমে যাওয়ার সময়ের অনুপাত বোঝায়। আমাদের কাজ হলো নদীর ধারার গতি এবং আপ ও ডাউনস্ট্রিমের সময়ের অনুপাত থেকে মানুষের গতি বের করা।
উদাহরণ দিয়ে সমস্যা বোঝা যাক,
ইনপুট
S = 5, N = 2
আউটপুট
15
সমাধানের পদ্ধতি
এই সমস্যার একটি সহজ সমাধান হলো নৌকা চালানোর গাণিতিক সূত্র ব্যবহার করা। চলুন দেখি সূত্রটি কিভাবে কাজ করে:
মানুষের গতি = x কিমি/ঘণ্টা নদীর ধারার গতি = S কিমি/ঘণ্টা ধারার সাথে (downstream) মানুষের গতি = (x+S) কিমি/ঘণ্টা ধারার বিপরীত (upstream) মানুষের গতি = (x-S) কিমি/ঘণ্টা ধারার সাথে দূরত্ব পার করার সময় = T ধারার বিপরীত দূরত্ব পার করার সময় = n*T ধারার বিপরীত দূরত্ব = (x - S)*n*T ধারার সাথে দূরত্ব = (x + S)*T যেহেতু দুটি দূরত্ব একই, (x + S) * T = (x - S)*n*T x + S = nx - nS S + nS = nx - x S*(n + 1) = x(n - 1)
$$x=\frac{S*(n+1)}{(n-1)}$$
সমাধান কোড:
উদাহরণ
#include <iostream>
using namespace std;
float calcManSpeed(float S, int n) {
return ( S * (n + 1) / (n - 1) );
}
int main() {
float S = 12;
int n = 3;
cout<<"The speed of man is "<<calcManSpeed(S, n)<<" km/hr";
return 0;
}
আউটপুট
The speed of man is 24 km/hr