কম্পিউটার

C প্রোগ্রামে অ্যারে বা লুপ ব্যবহার না করেই {1,2,3,…n} এর সমস্ত উপসেট প্রিন্ট করা হচ্ছে


একটি ধনাত্মক পূর্ণসংখ্যা n দেওয়া হলে আমাদের কোনো অ্যারে বা লুপ ব্যবহার না করেই {1, 2, 3, 4, … n} সেটের সমস্ত উপসেট প্রিন্ট করতে হবে।

যেমন আমরা যেকোন সংখ্যা দিয়েছি বলুন 3 s আমাদের সেটের সমস্ত উপসেট প্রিন্ট করতে হবে {1, 2, 3} যা হবে {1 2 3}, {1 2}, {2 3}, {1 3}, {1}, {2}, {3} { }৷

কিন্তু আমাদের এটা করতে হবে কোনো লুপ বা অ্যারে ব্যবহার না করেই। সুতরাং, কোনো অ্যারে বা লুপ ব্যবহার না করেই এই ধরনের সমস্যা সমাধানের সম্ভাব্য উপায় হল শুধুমাত্র পুনরাবৃত্তি।

উদাহরণ

ইনপুট:3আউটপুট:{ 1 2 3 }{ 1 2 }{ 1 3 }{ 1 }{ 2 3 }{ 2 }{ 3 }{ } ব্যাখ্যা:সেটটি হবে {1 2 3} যেখান থেকে আমরা করব উপসেটগুলি খুঁজুন ইনপুট:4আউটপুট:{ 1 2 3 4 }{ 1 2 3 }{ 1 2 4 }{ 1 2 }{ 1 3 4 }{ 1 3 }{ 1 4 }{ 1 }{ 2 3 4 }{ 2 3 }{ 2 4 }{ 2 }{ 3 4 }{ 3 }{ 4 }{ }

প্রদত্ত সমস্যা সমাধানের জন্য আমরা যে পদ্ধতি ব্যবহার করব

  • সংখ্যা =2^n -1 থেকে শুরু করে 0 পর্যন্ত।
  • বিটের n সংখ্যা সহ সংখ্যার বাইনারি উপস্থাপনা বিবেচনা করুন৷
  • বামদিকের বিট থেকে শুরু করুন যা 1কে প্রতিনিধিত্ব করে, দ্বিতীয় বিটটি 2কে উপস্থাপন করে এবং nth বিট পর্যন্ত যা n কে প্রতিনিধিত্ব করে।
  • সেট করা থাকলে বিটের সাথে সংশ্লিষ্ট নম্বরটি প্রিন্ট করুন।
  • সংখ্যার সমস্ত মানের জন্য উপরের ধাপগুলি সম্পাদন করুন যতক্ষণ না এটি 0 এর সমান হয়৷

আসুন একটি সাধারণ উদাহরণ −

ব্যবহার করে এটি কীভাবে কাজ করে তা বিশদভাবে বর্ণিত পদ্ধতিটি বুঝুন

ইনপুট n =3 ধরে নিচ্ছি, তাই সমস্যাটি num =2^3 - 1 =7 থেকে শুরু হয়

  • 7 এর বাইনারি প্রতিনিধিত্ব ⇒
৷ ৷
1 11
  • সংশ্লিষ্ট উপসেট ⇒
1 2 3

সংখ্যা থেকে 1 বিয়োগ করা; সংখ্যা =6

  • 6 এর বাইনারি প্রতিনিধিত্ব ⇒
1 10
  • সংশ্লিষ্ট উপসেট ⇒
1 2

সংখ্যা থেকে 1 বিয়োগ করা; সংখ্যা =5

  • 5 ⇒ এর বাইনারি প্রতিনিধিত্ব
1 0 1
  • সংশ্লিষ্ট উপসেট ⇒
1
3

সংখ্যা থেকে 1 বিয়োগ করা; সংখ্যা =4

  • 4 ⇒ এর বাইনারি প্রতিনিধিত্ব
1 0 0
  • সংশ্লিষ্ট উপসেট ⇒
1

একইভাবে আমরা num =0 পর্যন্ত পুনরাবৃত্তি করব এবং সমস্ত উপসেট প্রিন্ট করব।

অ্যালগরিদম

স্টার্ট ১ম ধাপ → ফাংশনে int সাবসেট(int bitn, int num, int num_of_bits) যদি bitn>=0 যদি (num &(1 <=0) Print "{ " কল ফাংশন সাবসেট(num_of_bits - 1, num, num_of_bits) Print "}" কল ফাংশন প্রিন্ট num_of_bits, num - 1) অন্যথায় রিটার্ন 0 রিটার্ন 1 ধাপ 3> 

উদাহরণ

#include #include // এই ফাংশনটি পুনরাবৃত্তিমূলকভাবে num.int সাবসেটের (int bitn, int num, int num_of_bits) বাইনারি// প্রতিনিধিত্বের সাথে সম্পর্কিত// উপসেট প্রিন্ট করে { if (bitn>=0) { // প্রদত্ত সাবসেটে প্রিন্ট নম্বর শুধুমাত্র // যদি এর সাথে সংশ্লিষ্ট বিটটি // সংখ্যায় সেট করা হয়। যদি ((num &(1 <=0) { printf("{ "); // সংখ্যার বাইনারি উপস্থাপনা // অনুরূপ উপসেটগুলি প্রিন্ট করুন। উপসেট(সংখ্যা_অফ_বিট - 1, সংখ্যা, সংখ্যা_অফ_বিট); printf("}"); // পুনরাবৃত্তভাবে ফাংশনটিকে কল করা // পরবর্তী উপসেট মুদ্রণ করা। প্রিন্ট সাবসেট(সংখ্যা_অফ_বিট, সংখ্যা - ১); } অন্যথায় 0 রিটার্ন করুন; রিটার্ন 1;}//main programint main() { int n =4; printSubSets(n, (int) (pow(2, n))-1);}

আউটপুট

<প্রে>{ 1 2 3 4 }{ 1 2 3 }{ 1 2 4 }{ 1 2 }{ 1 3 4 }{ 1 3 }{ 1 4 }{ 1 }{ 2 3 4 }{ 2 3 }{2 4 }{ 2 }{ 3 4 }{ 3 }{ 4 }{ }

  1. লুপ ব্যবহার করে 1 থেকে N এর মধ্যে সমস্ত মৌলিক সংখ্যা প্রদর্শনের জন্য সি প্রোগ্রাম

  2. একটি অ্যারে প্যালিনড্রোম কিনা বা পুনরাবৃত্তি ব্যবহার করছে না তা পরীক্ষা করার জন্য সি প্রোগ্রাম

  3. পাইথন প্রোগ্রামে কোনো লুপ ব্যবহার না করেই নম্বর সিরিজ প্রিন্ট করুন

  4. কোনো লুপ ব্যবহার না করেই প্রিন্ট নম্বর সিরিজের জন্য পাইথন প্রোগ্রাম