C++ এ শাফেল() বনাম এলোমেলো_শাফেল()

C E Saphela Banama Elomelo Saphela



C++ এ, স্ট্যান্ডার্ড লাইব্রেরি দুটি ফাংশন প্রদান করে, অদলবদল() এবং এলোমেলো_শফল() যা একটি ধারক উপাদান পুনর্বিন্যাস করতে ব্যবহৃত হয়. যদিও উভয় ফাংশন একই উদ্দেশ্য পরিবেশন করে, তবে তারা তাদের বাস্তবায়ন এবং এলোমেলো সংখ্যা তৈরি করার উপায়ে ভিন্ন।

এই নিবন্ধটি থেকে, আপনি এই দুটি ফাংশনের মধ্যে পার্থক্য খুঁজে পাবেন এবং বুঝতে পারবেন কিভাবে তারা কাজ করে।

C++ এ shuffle()

দ্য অদলবদল() ফাংশন হল একটি অন্তর্নির্মিত C++ ফাংশন যা একটি নির্দিষ্ট পরিসরে উপাদানগুলিকে এলোমেলোভাবে শাফেল বা পুনর্বিন্যাস করতে ব্যবহৃত হয়। ফাংশন ঘোষণা করা হয় <অ্যালগরিদম> শিরোনাম ফাইল এবং দুটি আর্গুমেন্ট আছে: পরিসরের প্রারম্ভিক অবস্থান হল প্রথম আর্গুমেন্ট, এবং দ্বিতীয় আর্গুমেন্টটি শেষ অবস্থানের প্রতিনিধিত্ব করে।







উপরন্তু, এটি একটি ঐচ্ছিক তৃতীয় প্যারামিটারও নেয়, যা একটি ফাংশন অবজেক্ট যা রেন্ডের উপাদানগুলিকে এলোমেলো করার জন্য ব্যবহার করার জন্য র্যান্ডম সংখ্যা তৈরি করে।



যখন অদলবদল() ফাংশন বলা হয়, এটি প্রদত্ত র্যান্ডম নম্বর জেনারেটর ব্যবহার করে নির্দিষ্ট পরিসরের উপাদানগুলিকে এলোমেলোভাবে পুনর্বিন্যাস করে। এলোমেলো ফলাফল অনুমানযোগ্য নয়, এবং উপাদানগুলির প্রতিটি সম্ভাব্য স্থানান্তর সমানভাবে ঘটতে পারে।



উদাহরণ

ব্যবহার করার নীচের উদাহরণ বিবেচনা করুন shuffle() ফাংশন C++ এ। এই প্রোগ্রামে, আমরা ভেক্টর তৈরি করেছি একটি জিনিস 0 থেকে 10 এর পূর্ণসংখ্যার মান সহ। তারপরে আমরা একটি র্যান্ডম সংখ্যা জেনারেটর তৈরি করি, যা তারপর ভেক্টরের পরিসরের সাথে পাস করা হয় অদলবদল() ফাংশন দ্য অদলবদল() ফাংশন সংখ্যা নেয় এবং এই সংখ্যার উপর ভিত্তি করে উপাদানগুলি অদলবদল করে। তারপর আমরা ফর লুপ ব্যবহার করে পুনরায় সাজানো ভেক্টর সিকোয়েন্স প্রিন্ট করেছি





# অন্তর্ভুক্ত করুন

# অন্তর্ভুক্ত <ভেক্টর>

# অন্তর্ভুক্ত <অ্যালগরিদম>

# অন্তর্ভুক্ত <এলোমেলো>

# অন্তর্ভুক্ত

নামস্থান std ব্যবহার করে ;

int প্রধান ( )

{

ভেক্টর < int > একটি জিনিস { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 } ;

স্বাক্ষরবিহীন বীজ = ক্রনো :: সিস্টেম_ঘড়ি :: এখন ( ) . সময়_পরবর্তী_যুগ ( ) . গণনা ( ) ;

অদলবদল ( একটি জিনিস. শুরু ( ) , একটি জিনিস. শেষ ( ) , ডিফল্ট_র্যান্ডম_ইঞ্জিন ( বীজ ) ) ;

cout << 'এলোমেলো উপাদানগুলি হল:' ;

জন্য ( int এবং i : একটি জিনিস )

cout << ' << i ;

cout << endl ;

ফিরে 0 ;

}

random_shuffle() C++ এ

দ্য এলোমেলো_শফল() ফাংশন এলোমেলোভাবে কিছু এলোমেলোভাবে বাছাই করা সংখ্যার সাথে প্রদত্ত পরিসরের উপাদানগুলিকে পুনর্বিন্যাস করে। এটি এলোমেলো সংখ্যার একটি ক্রম তৈরি করতে একটি র্যান্ডম সংখ্যা জেনারেটর ব্যবহার করে এবং তারপরে সেই সংখ্যাগুলিকে পরিসরের উপাদানগুলিকে এলোমেলো করতে ব্যবহার করে, তাই আপনি যখনই প্রোগ্রামটি চালাবেন তখন প্রোগ্রামটির ক্রম ভিন্ন হবে।



জন্য দুটি পরামিতি প্রয়োজন এলোমেলো_শফল() : পরিসরের শুরুর অবস্থান হল প্রথম প্যারামিটার, এবং দ্বিতীয় পরামিতি হল শেষের অবস্থান। উপরন্তু, এলোমেলো_শফল() একটি ঐচ্ছিক তৃতীয় প্যারামিটার নিতে পারে, যা একটি ফাংশন অবজেক্ট যা উপাদানগুলিকে এলোমেলো করার জন্য র্যান্ডম সংখ্যা তৈরি করতে ব্যবহার করা যেতে পারে।

উদাহরণ

নীচের উদাহরণটি এর কাজ চিত্রিত করে এলোমেলো_শফল() C++ এ। এই কোডে, আমরা একটি তৈরি করেছি ভেক্টর জিনিস 1 থেকে 10 পর্যন্ত পূর্ণসংখ্যার মান সহ এবং তারপর ব্যবহার করা হয় লুপের জন্য এলোমেলোভাবে এলোমেলো ক্রম প্রিন্ট করতে:

# অন্তর্ভুক্ত করুন

# অন্তর্ভুক্ত <অ্যালগরিদম>

নামস্থান std ব্যবহার করে ;

int প্রধান ( )

{

ভেক্টর < int > একটি জিনিস { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 } ;

srand ( স্ট্যাটিক_কাস্ট < স্বাক্ষরবিহীন int > ( সময় ( nullptr ) ) ) ;

random_shuffle ( একটি জিনিস. শুরু ( ) , একটি জিনিস. শেষ ( ) ) ;

জন্য ( int i : একটি জিনিস ) {

cout << i << '' ;

}

cout << ' \n ' ;



ফিরে 0 ;

}

shuffle() এবং random_shuffle() এর মধ্যে পার্থক্য

এখানে মধ্যে মূল পার্থক্য আছে অদলবদল() এবং এলোমেলো_শফল() C++ এ ফাংশন।

১: এলোমেলো_শফল() এলোমেলো করার জন্য উপাদানগুলির পরিসরের প্রতিনিধিত্বকারী একজোড়া পুনরাবৃত্তিকারী নেয়, যখন অদলবদল() এলোমেলো করার জন্য উপাদানগুলির পরিসরের প্রতিনিধিত্বকারী একজোড়া পুনরাবৃত্তিকারী, সেইসাথে শাফেল করার জন্য ব্যবহার করার জন্য একটি র্যান্ডম সংখ্যা জেনারেটর লাগে।

2: এলোমেলো_শফল() সাধারণত এর চেয়ে কম কার্যকরী অদলবদল() , কারণ এটিকে এলোমেলো সংখ্যার একটি ক্রম তৈরি করতে হবে যা এলোমেলো করার জন্য ব্যবহার করতে হবে।

3: random_shuffle() উপাদানগুলিকে এলোমেলো করতে C++ স্ট্যান্ডার্ড লাইব্রেরির র্যান্ডম নম্বর জেনারেটরের অভ্যন্তরীণ বাস্তবায়ন ব্যবহার করে, যখন অদলবদল() শাফলিংয়ের জন্য ব্যবহার করার জন্য আপনাকে আপনার নিজস্ব র্যান্ডম নম্বর জেনারেটর নির্দিষ্ট করতে দেয়, আপনাকে এলোমেলোতার উপর আরও নিয়ন্ত্রণ দেয়।

4: random_shuffle() C++98 এ চালু করা হয়েছিল এবং C++ স্ট্যান্ডার্ড লাইব্রেরির সমস্ত সংস্করণ দ্বারা সমর্থিত, যখন অদলবদল() C++ 11-এ চালু করা হয়েছিল এবং শুধুমাত্র কম্পাইলারদের দ্বারা সমর্থিত যা স্ট্যান্ডার্ডের সেই সংস্করণটি বাস্তবায়ন করে।

সর্বশেষ ভাবনা

মধ্যে পছন্দ অদলবদল() এবং এলোমেলো_শফল() আপনার নির্দিষ্ট ব্যবহারের ক্ষেত্রে এবং প্রয়োজনীয়তার উপর নির্ভর করে। যদি আপনার এলোমেলোতার উপর আরও নিয়ন্ত্রণের প্রয়োজন হয়, বা আপনি যদি একটি কাস্টম র্যান্ডম নম্বর জেনারেটর ব্যবহার করতে চান, তাহলে অদলবদল() একটি ভাল পছন্দ হবে. অন্যদিকে, যদি আপনার সেই স্তরের নিয়ন্ত্রণের প্রয়োজন না হয় এবং উপাদানগুলিকে এলোমেলো করার একটি সহজ উপায় চান, তাহলে এলোমেলো_শফল() যথেষ্ট হতে পারে।