কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে Random7() থেকে Random10() ফাংশন বানানো


সমস্যা

const random7 = () => Math.ceil(Math.random() * 7);

উপরের ফ্যাট অ্যারো ফাংশনটি প্রতিবার কল করলে ০ (এক্সক্লুসিভ) থেকে ৭ (ইনক্লুসিভ) পর্যন্ত র‍্যান্ডম নম্বর দেয়।

আমাদের একটি সাদৃশ্য random10() ফাংশন লিখতে হবে যা কোনো আর্গুমেন্ট নেয় না, জাভাস্ক্রিপ্ট লাইব্রেরি বা থার্ড পার্টি লাইব্রেরি ব্যবহার করে না। শুধু random7() ফাংশনটি ব্যবহার করে ০ (এক্সক্লুসিভ) থেকে ১০ (ইনক্লুসিভ) পর্যন্ত র‍্যান্ডম নম্বর রিটার্ন করবে।

উদাহরণ

কোডটি নিচের মতো (সামান্য পদ্ধতি, তবে নোট: নিচের কোডে বাগ আছে, sum ইনিশিয়ালাইজ করা নেই):

const random7 = () => Math.ceil(Math.random() * 7); const random10 = () => { let sum; for(let i = 0; i < 50; i++){ sum += random7(); } return (sum % 10) + 1; }; console.log(random10());

কোড ব্যাখ্যা

এখানে random7() কল করে ৫০বার যোগ করে একটি যথাসম্ভব ইউনিফর্ম সাম তৈরি করা হয়েছে এবং সেটি মডুলো ১০ দিয়ে বেস-১০ এ র‍্যান্ডম নম্বর জেনারেট করা হয়েছে।

আউটপুট

কনসোলে আউটপুট (বাগের কারণে):

NaN

  1. জাভাস্ক্রিপ্টে ফাংশনকে নিজের ভেতর থেকে রেফার করা

  2. জাভাস্ক্রিপ্টে ফাংশন প্রোটোটাইপ

  3. জাভাস্ক্রিপ্টে ফাংশন বরোइং (Function Borrowing)

  4. জাভাস্ক্রিপ্টে আউটার ফাংশন থেকে ইভেন্ট লিসেনার সরানো