ট্র্যাক
/
MIPS Assembly
MIPS Assembly
/
অনুশীলনী
/
প্যাসকেলের ত্রিভুজ
প্যাসকেলের ত্রিভুজ

প্যাসকেলের ত্রিভুজ

মধ্যম

ভূমিকা

আবহাওয়া দারুণ ভালো, অথচ আপনি এক ঘণ্টা ক্লাসরুমে কাটানোর কথা ভেবে বিশেষ আগ্রহ বোধ করছেন না। বিরক্ত হয়ে আপনি ক্লাসরুমে ঢোকেন, আর সেখানে ব্ল্যাকবোর্ডে চোখে পড়ে অদ্ভুতভাবে মন ভরিয়ে দেওয়া একটি ত্রিভুজ। গণিতের শিক্ষক আসার জন্য অপেক্ষা করতে করতে আপনি ত্রিভুজটির কিছু প্যাটার্ন চোখে পড়া থামাতে পারেন না: একেবারে বাইরের মানগুলো সবই এক, প্রতিটি পরের সারিতে তার আগের সারির চেয়ে একটি মান বেশি, আর ত্রিভুজটি প্রতিসম। অদ্ভুত!

আপনি বসতে না বসতেই আপনার শিক্ষক ঘরে ঢোকেন এবং ব্যাখ্যা করেন যে এই ত্রিভুজটিই বিখ্যাত প্যাসকেলের ত্রিভুজ।

পরের এক ঘণ্টায় আপনার শিক্ষক এই ত্রিভুজের ভেতরে লুকিয়ে থাকা কিছু চমকপ্রদ বিষয় তুলে ধরেন:

  • এটি দিয়ে হিসাব করা যায়, N-টি মান থেকে K-টি এলিমেন্ট কতভাবে বেছে নেওয়া যায়।
  • এটির মধ্যে ফিবোনাচি ধারা রয়েছে।
  • জোড় ও বিজোড় সংখ্যাগুলোকে যদি আলাদা আলাদা রঙে রাঙান, তাহলে পাবেন সিয়েরপিনস্কি ত্রিভুজ নামের এক অপূর্ব প্যাটার্ন।

শিক্ষক আপনার ও আপনার সহপাঠীদের কাছে অনুরোধ করেন, এই ত্রিভুজের আরও ব্যবহার খুঁজে দেখতে, এবং আশ্বাস দেন যে এমন ব্যবহার আরও অনেক আছে! ঠিক তখনই স্কুলের ঘণ্টা বেজে ওঠে। আপনি বুঝতে পারেন, গত এক ঘণ্টা ধরে আপনি প্যাসকেলের ত্রিভুজ সম্পর্কে শিখতে গিয়ে পুরোপুরি মগ্ন ছিলেন। আপনি দ্রুত ব্যাগ থেকে ল্যাপটপ বের করেন এবং বাইরে চলে যান, রোদের আলো আর প্যাসকেলের ত্রিভুজের বিস্ময়, দুটোই উপভোগ করার প্রস্তুতি নিয়ে।

নির্দেশনা

আপনার কাজ হলো প্যাসকেলের ত্রিভুজের প্রথম N সারি আউটপুট করা।

প্যাসকেলের ত্রিভুজ হলো ধনাত্মক ইন্টিজারের একটি ত্রিভুজাকার অ্যারে।

প্যাসকেলের ত্রিভুজে একটি সারিতে থাকা মানের সংখ্যা তার সারি নম্বরের সমান (যা এক থেকে শুরু হয়)। তাই প্রথম সারিতে একটি মান থাকে, দ্বিতীয় সারিতে দুটি মান থাকে, আর এভাবেই চলতে থাকে।

প্রথম (সবচেয়ে উপরের) সারিতে একটি মাত্র মান থাকে: 1। পরের সারিগুলোর মান হিসাব করা হয় আগের সারিতে বর্তমান অবস্থানের ঠিক ডানে ও বামে থাকা সংখ্যাগুলো যোগ করে।

আগের সারিতে বর্তমান অবস্থানের বামে বা ডানে কোনো মান না থাকলে (যা কেবল একেবারে বামের ও একেবারে ডানের অবস্থানের ক্ষেত্রেই ঘটে), ওই অবস্থানের মান শূন্য ধরে নিন (অর্থাৎ যোগ করার সময় সেটি কার্যত "উপেক্ষা" করা হয়)।

উদাহরণ

চলুন প্যাসকেলের ত্রিভুজের প্রথম ৫টি সারি দেখি:

    1
   1 1
  1 2 1
 1 3 3 1
1 4 6 4 1

সবচেয়ে উপরের সারিতে একটি মান থাকে, সেটি 1।

একেবারে বামের ও একেবারে ডানের মানগুলোর বিবেচনা করার জন্য আগের সারিতে কেবল একটি অবস্থান থাকে, যা যথাক্রমে তাদের ডানের ও বামের অবস্থান। সবচেয়ে উপরের মানটি 1 হওয়ায় এ থেকে বোঝা যায়, একেবারে বামের ও একেবারে ডানের সব মানও 1।

বাকি মানগুলোর প্রতিটির ক্ষেত্রে দুটি অবস্থান বিবেচনা করতে হয়। যেমন, পঞ্চম সারির (1 4 6 4 1) মাঝের মানটি 6, কারণ আগের সারিতে তার বামে ও ডানে থাকা মান দুটি 3 ও 3:

রেজিস্টার

রেজিস্টার ব্যবহার টাইপ বিবরণ
$a0 ইনপুট ইন্টিজার ত্রিভুজের সারির সংখ্যা
$a1 ইনপুট/আউটপুট অ্যাড্রেস ওয়ার্ডের অ্যারে
$v0 আউটপুট ইন্টিজার আউটপুট ওয়ার্ডের সংখ্যা
$t0-9 টেম্পোরারি যেকোনো টেম্পোরারি স্টোরেজের জন্য
GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি একটি নতুন উইন্ডো বা ট্যাবে খোলে
MIPS Assembly Exercism

প্যাসকেলের ত্রিভুজ শুরু করতে প্রস্তুত?

Exercism-এ সাইন আপ করুন, MIPS Assembly ট্র্যাকের 70টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।