কম্পিউটার টিউটোরিয়াল

পাইথনে DFA ব্যবহার করে বাইনারি স্ট্রিং ৩ দিয়ে বিভাজ্য কিনা

একটি বাইনারি অ্যারে n দেওয়া আছে (যা একটি সংখ্যার বাইনারি রিপ্রেজেন্টেশন)। Deterministic Finite Automata (DFA) ব্যবহার করে এটি ৩ দিয়ে বিভাজ্য কিনা যাচাই করতে হবে।

DFA স্টেট ডায়াগ্রাম

৩ স্টেট: ০ (রিমেইন্ডার ০), ১ (রিমেইন্ডার ১), ২ (রিমেইন্ডার ২)। স্টেট ০ হলো ফাইনাল স্টেট।

ট্রানজিশন

  • স্টেট ০: ইনপুট ১ -> স্টেট ১, ইনপুট ০ -> স্টেট ০।
  • স্টেট ১: ইনপুট ০ -> স্টেট ২, ইনপুট ১ -> স্টেট ০।
  • স্টেট ২: ইনপুট ০ -> স্টেট ১, ইনপুট ১ -> স্টেট ২।

উদাহরণ

ইনপুট: n = [1, 1, 0, 0] (১২-এর বাইনারি)

আউটপুট: True

উদাহরণ কোড

def solve(nums):
    dfa_state = 0
    for digit in nums:
        if dfa_state == 0:
            if digit == 1:
                dfa_state = 1
        elif dfa_state == 1:
            if digit == 0:
                dfa_state = 2
            else:
                dfa_state = 0
        elif dfa_state == 2:
            if digit == 0:
                dfa_state = 1
    return dfa_state == 0

n = [1, 1, 0, 0]
print(solve(n))  # Output: True

ইনপুট

[1, 1, 0, 0]

আউটপুট

True
  1. পাইথনে একসাথে একাধিক ফাইল রিনেম করা

  2. পাইথনে স্ট্রিংকে বাইনারি ফরম্যাটে রূপান্তর করা

  3. পাইথনে স্ট্রিং শুধু হোয়াইটস্পেস ক্যারেক্টার ধারণ করছে কিনা যাচাই করা

  4. পাইথনে স্ট্রিং শুধু নির্দিষ্ট ক্যারেক্টার ধারণ করছে কিনা যাচাই করা