আমরা দুটি জাভাস্ক্রিপ্ট ফাংশন লিখব, উভয় ফাংশনের কাজ হবে একটি সংখ্যা নেওয়া এবং তার ফ্যাক্টরিয়াল ফেরত দেওয়া।
প্রথম ফাংশন ফ্যাক্টরিয়াল গণনা করার জন্য লুপ বা while লুপ ব্যবহার করা উচিত। যেখানে দ্বিতীয় ফাংশন একটি পুনরাবৃত্ত পদ্ধতি ব্যবহার করে ফ্যাক্টরিয়াল গণনা করা উচিত।
সবশেষে, আমাদের এই ফাংশনগুলির দ্বারা নেওয়া সময়ের তুলনা করা উচিত বহু সংখ্যক পুনরাবৃত্তির সাথে।
উদাহরণ
নিম্নলিখিত কোড -
const factorial = (num = 1) => { let result = 1; for (let i = 2; i <= num; i += 1) { result *= i; } return result; } const factorialRecursive = (num = 1) => { if(num > 1){ return num * factorialRecursive(num - 1); }else{ return 1; } }; const ITERATIONS = 100000000; const num = 12; console.time('Looping Approach'); for(let i = 0; i < ITERATIONS; i++){ factorial(num); }; console.timeEnd('Looping Approach'); console.time('Recursive Approach'); for(let j = 0; j < ITERATIONS; j++){ factorialRecursive(num); }; console.timeEnd('Recursive Approach');
আউটপুট
নিম্নোক্ত কনসোলে আউটপুট -
Looping Approach: 886.720ms Recursive Approach: 6526.203ms
এই সময়টি মেশিন থেকে মেশিনে অনুপাত অনুসারে পরিবর্তিত হবে কমবেশি একই থাকতে বাধ্য।