আমরা একটি নমুনা ডেটার জন্য আমাদের প্রকল্পে একটি র্যান্ডম নম্বর তৈরি করতে ব্যবহার করি, যা পরে পরীক্ষার জন্য, খালি কলামগুলি পূরণ করা বা অন্যান্য অনেক উদ্দেশ্যে ব্যবহার করা যেতে পারে, মূল জিনিসটি হল আমাদের র্যান্ডম ডেটা তৈরি করতে হবে। পাইথনে, এলোমেলো ডেটা তৈরি করার অনেক উপায় রয়েছে এবং আমরা এই নিবন্ধে সেগুলির কয়েকটি এখানে অন্বেষণ করতে যাচ্ছি -
পাইথন র্যান্ডম() মডিউল
একটি গুরুত্বপূর্ণ লাইব্রেরি, পাইথনের সাথে যা আসে তা এলোমেলো এবং আমরা এটিকে আমাদের কোডে ব্যবহার করতে যাচ্ছি৷
আপনার কোডে এই মডিউলটি ব্যবহার করার জন্য, আপনাকে কেবল এটি আমদানি করতে হবে, এটাই এবং আমরা এটি ব্যবহার করতে প্রস্তুত৷
এলোমেলো আমদানি করুন
আসুন দেখি কিভাবে এটি ব্যবহার করতে হয় -
এলোমেলো ছাপ আমদানি করুন("আমি কী পাব, কোন ধারণা নেই কারণ আমি random.random()")প্রিন্ট(random.random()) ব্যবহার করছি
আউটপুট
আমি কি পাব, কোন ধারণা নেই কারণ আমি random.random()0.5306626723173611 ব্যবহার করছি
দ্বিতীয়বার, যদি আমি একই প্রোগ্রাম চালানোর চেষ্টা করি- আপনি ভিন্ন আউটপুট পাবেন -
আমি কি পাব, কোন ধারণা নেই কারণ আমি random.random()0.5504289430397661 ব্যবহার করছি
এলোমেলো মডিউলে কিছু পয়েন্ট:
- random() হল র্যান্ডম মডিউলের মৌলিক ফাংশন
- এলোমেলো মডিউলের প্রায় সব ফাংশন এলোমেলো() ফাংশন ব্যবহার করে।
- Random() ফাংশন [0.0 থেকে 1.0 এর মধ্যে যেকোনো সংখ্যা তৈরি করবে।
পাইথনে এলোমেলো পূর্ণসংখ্যা তৈরি করুন
নীচে দুটি ফাংশন আমরা র্যান্ডম পূর্ণসংখ্যা −
তৈরি করতে ব্যবহার করছি- randint()
- randrange()
র্যান্ডম ইম্পোর্ট র্যান্ডিন্ট থেকে, র্যান্ডরেঞ্জপ্রিন্ট("র্যান্ডম পূর্ণসংখ্যা মুদ্রণ", র্যান্ডিন্ট(0, 20))প্রিন্ট("র্যান্ডম পূর্ণসংখ্যা মুদ্রণ", র্যান্ডরেঞ্জ(0, 20, 2))
আউটপুট
এলোমেলো পূর্ণসংখ্যা মুদ্রণ 15 র্যান্ডম পূর্ণসংখ্যা 4 মুদ্রণ
এলোমেলোভাবে একটি তালিকা থেকে একটি আইটেম নির্বাচন করুন
বিবেচনা করুন আমাদের কোম্পানির নামের একটি তালিকা আছে এবং আমরা সেই তালিকা থেকে একটি আইটেম (কোম্পানীর নাম) পুনরুদ্ধার করতে চাই। আমরা এর মাধ্যমে এটি অর্জন করতে পারি,
এলোমেলো কোম্পানি আমদানি করুন =['RELIANCE', 'TCS', 'INFY', 'SBI', 'PNB', 'HDFC']প্রিন্ট ('এলোমেলোভাবে একটি তালিকা থেকে কোম্পানি নির্বাচন করা:', random.choice(কম্পানি))
আউটপুট
এলোমেলোভাবে একটি তালিকা থেকে কোম্পানি নির্বাচন করা:INFY
এলোমেলোভাবে একটি তালিকা থেকে একাধিক আইটেম নির্বাচন করা
উপরের উদাহরণটি বিবেচনা করুন কিন্তু একটি আইটেম(কোম্পানী) এর পরিবর্তে আমরা একটি তালিকা থেকে এলোমেলোভাবে একাধিক আইটেম(কোম্পানী) নির্বাচন করতে চাই, আমরা এটি random.sample() ফাংশনের মাধ্যমে অর্জন করতে পারি -
এলোমেলো কোম্পানি আমদানি করুন =['RELIANCE', 'TCS', 'INFY', 'SBI', 'PNB', 'HDFC']প্রিন্ট ('এলোমেলোভাবে একটি তালিকা থেকে 3টি কোম্পানি নির্বাচন করা হচ্ছে:', random.sample(কম্পানি, 3))
আউটপুট
একটি তালিকা থেকে এলোমেলোভাবে 3টি কোম্পানি নির্বাচন করা:['TCS', 'RELIANCE', 'INFY']
যাইহোক, যদি আমরা তালিকায় আইটেম সংখ্যার চেয়ে বেশি আইটেম নির্বাচন করার চেষ্টা করি, তাহলে আমরা মান ত্রুটির সম্মুখীন হই -
ইনপুট -
random.sample(companies,20)
আউটপুট -
ValueError:নমুনা জনসংখ্যার চেয়ে বড় বা নেতিবাচক
একটি তালিকা থেকে একাধিক র্যান্ডম আইটেম নির্বাচন করার আরেকটি পদ্ধতি হল – random.choices().
এলোমেলো কোম্পানি আমদানি করুন =['RELIANCE', 'TCS', 'INFY', 'SBI', 'PNB', 'HDFC']প্রিন্ট ('এলোমেলোভাবে একটি তালিকা থেকে 3টি কোম্পানি নির্বাচন করা হচ্ছে:', random.choices(কম্পানি, k=6))
আউটপুট
একটি তালিকা থেকে এলোমেলোভাবে 3টি কোম্পানি নির্বাচন করা:['TCS', 'TCS', 'INFY', 'HDFC', 'INFY', 'TCS']
আমরা উপরের আউটপুট থেকে দেখতে পাচ্ছি, random.choices() পদ্ধতি ব্যবহার করে আমরা তালিকা থেকে একটি ডুপ্লিকেট আইটেম পেতে পারি।
পাইথনে সিউডো-র্যান্ডম নম্বর জেনারেটর
ছদ্ম-এলোমেলো নম্বর জেনারেটর একটি মান উপর কিছু অপারেশন সঞ্চালন দ্বারা কাজ. সাধারণত, এই মানটি জেনারেটর দ্বারা উত্পন্ন পূর্ববর্তী সংখ্যা। যাইহোক, আপনি যখন প্রথমবার জেনারেটর ব্যবহার করবেন, তার আগের কোন মান নেই।
এলোমেলো ছাপ আমদানি করুন("বীজের মান 10:") # রেঞ্জে (5):প্রিন্ট(random.randint(1,100))প্রিন্ট()প্রিন্ট("বীজের মান 5:" এর জন্য বীজের মান র্যান্ডম.seed(10) শুরু করুন ) # এবার আমরা বিভিন্ন মান পাব random.seed(5) এর জন্য i in range(5):print(random.randint(1,100))print()print("Seed value:10") # একই ফলাফল পাবেন , আমরা রেঞ্জে (5):print(random.randint(1,100)) এর জন্য প্রাথমিকভাবে random.seed(10) কি পেয়েছিআউটপুট
বীজের মান 10:745556274বীজের মান 5:8033954689বীজের মান:10745556274আমরা উপরের উদাহরণ থেকে দেখতে পাচ্ছি, যদি বীজ একই হয় তবে এটি প্রথম আগের মান তৈরি করে। প্রতিটি বীজের মান একটি প্রদত্ত এলোমেলো সংখ্যা জেনারেটরের জন্য উত্পন্ন মানের একটি নির্দিষ্ট অনুক্রমের সাথে মিলে যায়৷
পাইথনে ক্রিপ্টোগ্রাফিকভাবে সুরক্ষিত র্যান্ডম নম্বর তৈরি করুন
আমরা পাইথন 3.x-এ একটি ক্রিপ্টোগ্রাফিকভাবে সুরক্ষিত র্যান্ডম নম্বর তৈরি করতে পারি। আমাদের যদি পাইথন 3.6 বা তার উপরে থাকে তাহলে আমরা এর জন্য নতুন সিক্রেট মডিউল এবং নীচের ফাংশনটি ব্যবহার করতে পারি। এটি নির্দিষ্ট মানের নিচে একটি এলোমেলো সংখ্যা তৈরি করবে।
ইম্পোর্ট সিক্রেটস# জেনারেট করুন 10 থেকে 500 এর মধ্যে 10টি সুরক্ষিত র্যান্ডম সংখ্যার জন্য x রেঞ্জে (0,10):secV =10+ secrets.randbelow(500)print(secV)আউটপুট
464406184293399332495292118134পাইথন 3.5 বা নীচের জন্য আরেকটি উপায়, আমরা র্যান্ডম মডিউল এবং সিস্টেম র্যান্ডম ক্লাস ব্যবহার করে ক্রিপ্টোগ্রাফিকভাবে সুরক্ষিত র্যান্ডম নম্বর তৈরি করতে পারি,
randomrandGen =random.SystemRandom()এক্স এর জন্য রেঞ্জ(0,10):secV =10+ randGen.randint(0,499)print(secV)আউটপুট
374211425264217972103931952আরেকটি উপায় হল এলোমেলো এবং গোপনীয়তা (ডেটা সুরক্ষিত করতে) মডিউল ব্যবহার করা।
ইম্পোর্ট সিক্রেটসিমপোর্ট randomsecNum =random.SystemRandom().random()print("Secure number is ", secNum)print("Secure byte token", secrets.token_bytes(16))আউটপুট
নিরাপদ নম্বর হল 0.5205307353786663Secure বাইট টোকেন b'\x05T>\xacsqn0\x08\xc4\xf4\x8aU\x13\x9f\xcf'