ব্যালেন্সড টার্নারি#

“Setun computer using Balanced Ternary system”

এটা একটা অ-প্রমিত কিন্তু তবুও পজিশনাল সংখ্যা পদ্ধতি (number system)। এর বৈশিষ্ট্য হলো ডিজিটের মান -1, 0 এবং 1 হতে পারে। তবুও, এর ভিত্তি 3 (কারণ তিনটি সম্ভাব্য মান আছে)। যেহেতু ডিজিট হিসেবে -1 লেখা সুবিধাজনক নয়, আমরা এই উদ্দেশ্যে Z অক্ষরটি ব্যবহার করব। তুমি যদি মনে করো এটা বেশ অদ্ভুত একটা সিস্টেম - ছবিটা দেখো - এখানে একটা কম্পিউটার আছে যেটা এই সিস্টেম ব্যবহার করে।

তাহলে ব্যালেন্সড টার্নারিতে লেখা প্রথম কয়েকটি সংখ্যা এখানে দেওয়া হলো:

    0    0
    1    1
    2    1Z
    3    10
    4    11
    5    1ZZ
    6    1Z0
    7    1Z1
    8    10Z
    9    100

এই সিস্টেম তোমাকে সামনে মাইনাস চিহ্ন ছাড়াই ঋণাত্মক মান লিখতে দেয়: তুমি যেকোনো ধনাত্মক সংখ্যার ডিজিটগুলো কেবল উল্টে দিতে পারো।

    -1   Z
    -2   Z1
    -3   Z0
    -4   ZZ
    -5   Z11

লক্ষ্য করো যে একটি ঋণাত্মক সংখ্যা Z দিয়ে শুরু হয় এবং ধনাত্মক সংখ্যা 1 দিয়ে।

রূপান্তর অ্যালগরিদম#

একটা দেওয়া সংখ্যাকে ব্যালেন্সড টার্নারি-তে উপস্থাপন করা সহজ, সাময়িকভাবে এটাকে স্বাভাবিক ত্রিমিক সংখ্যা পদ্ধতিতে উপস্থাপন করে। যখন মান স্ট্যান্ডার্ড ত্রিমিকে থাকে, এর ডিজিটগুলো হয় 0 অথবা 1 অথবা 2। সর্বনিম্ন ডিজিট থেকে ইটারেট করতে গিয়ে আমরা নিরাপদে যেকোনো 0 এবং 1 স্কিপ করতে পারি, তবে 2-কে Z-এ পরিবর্তন করতে হবে এবং পরবর্তী ডিজিটে 1 যোগ করতে হবে। ডিজিট 3-কে একই শর্তে 0-তে পরিবর্তন করতে হবে - এই ডিজিটগুলো সংখ্যায় শুরুতে উপস্থিত থাকে না তবে কিছু 2-কে বৃদ্ধি করার পর সেগুলো দেখা দিতে পারে।

উদাহরণ ১: চলো 64-কে ব্যালেন্সড টার্নারিতে রূপান্তর করি। প্রথমে আমরা স্বাভাবিক ত্রিমিক ব্যবহার করে সংখ্যাটা পুনরায় লিখি:

$$ 64_{10} = 02101_{3} $$

চলো সবচেয়ে কম তাৎপর্যপূর্ণ (ডানদিকের) ডিজিট থেকে প্রসেস করি:

  • 1, 0 এবং 1 যেমন আছে তেমনই স্কিপ করা হয়।( কারণ 0 এবং 1 ব্যালেন্সড টার্নারিতে অনুমোদিত )
  • 2-কে Z-এ পরিবর্তন করা হয় এবং এর বাঁদিকের ডিজিট বৃদ্ধি করা হয়, তাই আমরা পাই 1Z101।

চূড়ান্ত ফলাফল হলো 1Z101।

চলো ওজনযুক্ত পজিশনাল মান যোগ করে এটাকে দশমিক সিস্টেমে ফিরিয়ে রূপান্তর করি:

$$ 1Z101 = 81 \cdot 1 + 27 \cdot (-1) + 9 \cdot 1 + 3 \cdot 0 + 1 \cdot 1 = 64_{10} $$

উদাহরণ ২: চলো 237-কে ব্যালেন্সড টার্নারিতে রূপান্তর করি। প্রথমে আমরা স্বাভাবিক ত্রিমিক ব্যবহার করে সংখ্যাটা পুনরায় লিখি:

$$ 237_{10} = 22210_{3} $$

চলো সবচেয়ে কম তাৎপর্যপূর্ণ (ডানদিকের) ডিজিট থেকে প্রসেস করি:

  • 0 এবং 1 যেমন আছে তেমনই স্কিপ করা হয়।( কারণ 0 এবং 1 ব্যালেন্সড টার্নারিতে অনুমোদিত )
  • 2-কে Z-এ পরিবর্তন করা হয় এবং এর বাঁদিকের ডিজিট বৃদ্ধি করা হয়, তাই আমরা পাই 23Z10।
  • 3-কে 0-তে পরিবর্তন করা হয় এবং এর বাঁদিকের ডিজিট বৃদ্ধি করা হয়, তাই আমরা পাই 30Z10।
  • 3-কে 0-তে পরিবর্তন করা হয় এবং এর বাঁদিকের ডিজিট বৃদ্ধি করা হয় (যেটা ডিফল্টভাবে 0), এবং তাই আমরা পাই 100Z10।

চূড়ান্ত ফলাফল হলো 100Z10।

চলো ওজনযুক্ত পজিশনাল মান যোগ করে এটাকে দশমিক সিস্টেমে ফিরিয়ে রূপান্তর করি:

$$ 100Z10 = 243 \cdot 1 + 81 \cdot 0 + 27 \cdot 0 + 9 \cdot (-1) + 3 \cdot 1 + 1 \cdot 0 = 237_{10} $$

অনুশীলন সমস্যা#