তিনটি সংখ্যা থেকে মাঝপথি (median) বের করা ন্যূনতম তুলনায়।
পদ্ধতি: গাণিতিক ট্রিক
তিনটি সংখ্যা a, b, c এর জন্য:
- x = a - b
- y = b - c
- z = a - c
মাঝপথি হবে:
- b যদি x*y > 0 (a>b>c বা a
- c যদি x*z > 0
- অন্যথায় a
সমাধান
const middleOfThree = (a, b, c) => {
const x = a - b;
const y = b - c;
const z = a - c;
// শুধু ২টি গুণ এবং ১টি তুলনা
if (x * y > 0) return b;
if (x * z > 0) return c;
return a;
};
// বিকল্প: সোর্ট করে (পড়া সহজ)
const middleOfThreeSort = (a, b, c) => [a, b, c].sort((x, y) => x - y)[1];
// Math.min/max ব্যবহার
const middleOfThreeMinMax = (a, b, c) =>
a + b + c - Math.min(a, b, c) - Math.max(a, b, c);
// টেস্ট
console.log(middleOfThree(34, 45, 12)); // 34
console.log(middleOfThree(10, 5, 8)); // 8
console.log(middleOfThree(-5, -10, -3)); // -5
console.log(middleOfThree(7, 7, 7)); // 7
পারফরম্যান্স তুলনা
| পদ্ধতি | তুলনা | অপারেশন |
|---|---|---|
| গাণিতিক ট্রিক | ২ গুণ, ২ তুলনা | সবচেয়ে দ্রুত |
| Min/Max | ২ ফাংশন কল | পড়া সহজ |
| সোর্ট | O(1) কিন্তু ওভারহেড | সর্বচেয়ে স্লো |
উৎপাদন
34