আর কেন এলোমেলো সংখ্যা জেনারেটরগুলি runif()
প্রতিবার একই ফলাফল তৈরি করে না?
উদাহরণ স্বরূপ:
X <- runif(100)
X
প্রতিবার বিভিন্ন আউটপুট জেনারেট করে।
প্রতিবার বিভিন্ন আউটপুট উত্পন্ন করার কারণ কী?
এটি করতে পটভূমিতে কোন কার্যকারিতা চলছে?
আর কেন এলোমেলো সংখ্যা জেনারেটরগুলি runif()
প্রতিবার একই ফলাফল তৈরি করে না?
উদাহরণ স্বরূপ:
X <- runif(100)
X
প্রতিবার বিভিন্ন আউটপুট জেনারেট করে।
প্রতিবার বিভিন্ন আউটপুট উত্পন্ন করার কারণ কী?
এটি করতে পটভূমিতে কোন কার্যকারিতা চলছে?
উত্তর:
মনের দিক থেকে এটি আসলে একটি আর প্রশ্ন নয়; এটি আরও সাধারণভাবে এলোমেলো সংখ্যা জেনারেশনের সাথে সম্পর্কিত।
পরিসংখ্যানের অনেক অংশে "র্যান্ডম" সংখ্যাগুলি খুব গুরুত্বপূর্ণ। আমাদের নির্দিষ্ট বৈশিষ্ট্য অর্জনের জন্য আমাদের যে এলোমেলো মান উত্পন্ন হয় তা প্রয়োজন এবং সাধারণত প্রচুর প্রচেষ্টা এলোমেলো সংখ্যার জেনারেটর তৈরি করতে এবং তাদের বৈশিষ্ট্যগুলি পরীক্ষা করতে হয়।
ধারণাটি হ'ল আমরা মানগুলির ক্রম পেতে চাই যা আসলে এলোমেলো সংখ্যার জন্য একটি ভাল প্রক্সি। এলোমেলো সংখ্যা জেনারেশনের সাধারণ ওয়ার্কহর্স হ'ল ইউনিফর্ম বিতরণ (যা থেকে আমরা অন্যদের তৈরি করি, যেমন গাউসিয়ান এলোমেলো সংখ্যার মতো)।
সুতরাং (সর্বাধিক সাধারণভাবে) একটি সংখ্যার অ্যালগরিদম পূর্ববর্তীগুলির কিছু ক্রিয়াকলাপের ক্ষেত্রে প্রতিটি একের পূর্ণসংখ্যার ক্রম নির্মান করতে ব্যবহৃত হয়। এই পূর্ণসংখ্যাগুলি 0 থেকে 1 (সাধারণত ) এর মধ্যে শুকিয়ে যায় ।
উদাহরণস্বরূপ, অনেকে কেবল আগেরটির উপর কাজ করেন:
... যেখানে এর পূর্ণসংখ্যা সেখানে জেড এর পরে ইউনিট ব্যবধানে থাকতে হবে এবং এফটি প্রায়শই জটিল তবে সাধারণত দ্রুত ফাংশন যা বিটগুলিতে একটি নতুন সেট তৈরি করার পক্ষে তার তর্কে বিটগুলিতে কাজ করে এটি (আশাকরি) কোনও পূর্বের মানগুলির সাথে সম্পর্কিত বলে মনে হচ্ছে না (যদি আমরা তাদের সমস্ত উপায়ে দেখি, এমনকি বেশ সাবধানতার সাথে - যদিও তারা সত্যিই সম্পর্কিত, যেহেতু তারা এভাবে তৈরি হয়েছে)। এই ক্রমটি খুব দীর্ঘ চক্র রয়েছে এবং এটির মানগুলি অভিন্ন এবং যথাযথভাবে আমরা কোনভাবেই যত্নশীল হতে পারি না তা ক্রম নির্ভর করে না তা নিশ্চিত করার জন্য এগুলি সাবধানে তৈরি করা উচিত (অন্যান্য প্রয়োজনীয়তার পাশাপাশি যা সাধারণত হিসাবে বিবেচিত হয় গুরুত্বপূর্ণ)।
?runif
আর এ দেখুন এবং আপনি নোট করবেন যে এটি এলোমেলো বীজের অস্তিত্ব সম্পর্কে ব্যাখ্যা করেছে, যার সাহায্যে একটি লিঙ্ক রয়েছে যাতে ?.Random.seed
বিপুল সংখ্যক এলোমেলো সংখ্যক জেনারেটর উপলব্ধ রয়েছে যা আপনি উপলব্ধ করতে পারেন (এমনকি আপনি নিজের সরবরাহ করতে পারেন)। একই সহায়তার পৃষ্ঠাটি ব্যাখ্যা করে যে আপনি যদি আগে এলোমেলো সংখ্যা জেনারেশন ব্যবহার না করে বা বীজ সেট না করে থাকেন তবে বীজটি শুরু করতে ঘড়ি থেকে নেওয়া হয় এবং তারপরে পূর্ববর্তী মানটি সংরক্ষণ করা হয় (যাতে আপনি পরবর্তী র্যান্ডম সংখ্যাটি হন আপনি যদি গতবারের জন্য আরও একটি মান উৎপন্ন করে থাকেন তবে একইটি পেয়েছিলেন - এটি "আপনি কোথায় আছেন" মনে রাখে)।
আর এ ফাংশন runif
(অন্যান্য প্যাকেজগুলির মধ্যে বেশ কয়েকটি অন্যান্য এলোমেলো সংখ্যা জেনারেশন রুটিনের মতো যা সাধারণত কিছু অনুরূপ করতে পারে) র্যান্ডম সংখ্যার বীজটি কোথায় রাখা হয়েছে তা সম্পর্কে জানে। এটি যে মানটি যায় তত আপডেট করে রাখে। সুতরাং এটি স্পষ্টভাবে কোনও বীজ পাস না করেই পরিচালনা করতে পারে তবে এটি এখনও একটি ব্যবহার করে; যদি আপনি এটি না দিয়ে থাকেন তবে এটি সর্বশেষে সংরক্ষণ করা ব্যবহার করে।
কেন এটি প্রতিটি সময় বিভিন্ন আউটপুট দেয় (যদি আপনি এটি একই ক্রমটি দিতে বলেন না): এটি এটি কারণ কারণ প্রতিবার একই মানগুলি খুব উত্পাদনশীল হতে পারে - এর এমন বৈশিষ্ট্যগুলি পুনরাবৃত্তি করে না এলোমেলোভাবে নমুনা তৈরি করতে পারে, এটি রটম সংখ্যার জেনারেটরগুলির জন্য ব্যবহার করা পুটপোজগুলির জন্য এটি খুব কার্যকর নয়।
প্রতিবার একই ফলাফল পেতে আপনাকে এলোমেলো বীজ সেট করতে হবে। এটি করতে সেট ? সিড ব্যবহার করুন । বিবেচনা:
> runif(1)
[1] 0.6467259
> runif(1)
[1] 0.2101857
> set.seed(1)
> runif(1)
[1] 0.2655087
> set.seed(1)
> runif(1)
[1] 0.2655087
আপনি এটি পড়তে আগ্রহী হতে পারেন: সেট.সিড ফাংশনটি ব্যবহারের কারণ ।