جستجو در بخش : سوال جواب منابع اسلامی لغت نامه ها قوانین و مصوبات نقل قل ها
×

فرم ورود

ورود با گوگل ورود با گوگل ورود با تلگرام ورود با تلگرام
رمز عبور را فراموش کرده ام عضو نیستم، می خواهم عضو شوم
×

×

آدرس بخش انتخاب شده


جهت کپی کردن میتوانید از دکمه های Ctrl + C استفاده کنید
رویداد ها - امتیازات
در حال بارگذاری
×

رویداد ها - امتیازات

برای بررسی عملکرد فعالیت و امتیازات خود باید در وب سایت وارد باشید. در صورت عضویت از بخش بالای صفحه وارد شوید، در غیر این صورت از دکمه پایین، مستقیم به صفحه ثبت نام وارد شوید.

×
×
×

دلیل درخواست بستن پست

کلیه پست هایی که جنبه تبلیغاتی داشته، محتوای اسپم و بی مفهوم در این دسته قرار میگیرند. همچنین پست هایی که به منظور گرفتن بک لینک درج می شوند شامل این مورد هستند.
حاوی مفاهیم غیر اخلاقی، سیاسی و یا توهین آمیز. کلیه پست هایی که از نظر محتوایی نیاز به بررسی و یا حذف شدن دارند در این دسته قرار می گیرند.
محتوایی با عدم جزئیات کافی و مورد نیاز. کلیه پست هایی که منظور نویسنده به وضوح مشخص نیست و نیازمند توضیحات و جزئیات بیشتر می باشند در این دسته قرار می گیرند.
محتوایی بی ربط با موضوعیت سرفصل کلی. کلیه پست هایی که از منظر مفهوم و مضمون ارتباطی با عنوان اصلی سوال ندارند در این دسته قرار می گیرند.
محتوایی دلخواه و بر پایه سلیقه. کلیه پست هایی که یک پاسخ مشخص ندارند و متوانند چندین پاسخ متفاوت و صحیح داشته باشند که کاملا مبتنی بر نظر شخصی افراد هستند در این دسته قرار می گیرند.
محتوایی در حوزه خیلی وسیع. کلیه پست هایی که از نظر محتوایی در یک حوزه ی وسیعی قرار دارند و مشخصا به یک موضوع خاصی اشاره ندارند که پاسخدهی به آن ها مستلزم تشریح مفاهیمی کلی می باشند در این دسته قرار می گیرند.
قبلا در لام تا کام مطرح شده. پست هایی که دقیقا با همین محتوا و مضمون قبلا در وب سایت لام تا کام درج شده اند، با ذکر آدرس منبع تکراری با پست حال حاضر شامل این دسته هستند. تکراری است با:
به سایر دلایل، نیازمند به بررسی توسط مدیر. به هر دلیل غیری که پست را نیازمند بررسی توسط مدیر کرده، با ذکر دلیل، در این دسته قرار میگیرد.
ارسال رای بستن

delta در کلاس dfa چه گونه تعریف میشود؟


1
0
903

سلام دوستان من کد زیر رو دارم که یه کلاس برای dfa هست

class DFA:
    """This class represents a deterministic finite automaton."""
    def __init__(self, states, alphabet, delta, start, accepts):
        """The inputs to the class are as follows:
         -states: a lists containing the states of the DFA
         -alphabet: a list containing the symbols in the DFA's alphabet
         -delta: a complete function from [states]x[alphabets]->[states].
         -start: the state at which the DFA begins operation.
         -accepts: a list containing the "accepting" or "final" states of the DFA

        Making delta a function rather than a transition table makes it much easier to define certain DFAs. 
        And if you want to use transition tables, you can just do this:
         delta = lambda q,c: transition_table[q][c]
        One caveat is that the function should not depend on the value of 'states' or 'accepts', since
        these may be modified during minimization.

        Finally, the names of states and inputs should be hashable. This generally means strings, numbers,
        or tuples of hashables.
        """
        self.states = states
        self.start = start
        self.delta = delta
        self.accepts = accepts
        self.alphabet = alphabet
        self.current_state = start

بعد من نمیدونم چه طوری باید متغیر delta رو برای ایجاد کلاسم تعریف کنم . ممنون میشم راهنمایی کنید

تکنولوژی پایتون
ویرایش شده در 3 سال قبل
سوال شده در امیرحمزه باقری
441 امتیاز


به طور کلی، تعریف تابع در پایتون با def اتفاق میوفته. اطلاعات بیشتر ــ ساناز رضایی در 3 سال قبل

@ساناز.رضایی نه فکر کنم منظورم رو متوجه نشدید ، الان من میخوام از این کلاس یه نمونه سازی کنم دیگه که بتونم ازش استفاده کنم ، میشه راهنمایی کنید با توجه با کامنت های کد چه طوری باید یک نمونه از این کلاس ساخت؟ مثلا delta رو چه طوری باید تعریف کنم برای نمونه سازی؟ ــ امیرحمزه باقری در 3 سال قبل

@ساناز.رضایی خب سوالم همینه تابع رو به چه شکل باید بنویسم براش ؟ فکر کنم باید بدونید ماشین dfa چی هست که بتونید به سوالم جواب بدید ــ امیرحمزه باقری در 3 سال قبل

چرا از کتابخونه های پیاده سازی شده DFA استفاده نمیکنید؟ آدرس بدون عنوان ــ ساناز رضایی در 3 سال قبل

@ساناز.رضایی استاد گفته استفاده نکنید و اینکه کلا سوال من یه چیز دیگست . میگم یه نمونه از این کلاس رو چه طوری باید ساخت ؟ ــ امیرحمزه باقری در 3 سال قبل

آها. خب اجازه بدید یک جواب براتون مینویسم و مبتنی بر داکیومنتیشن خود پایتون توضیحات اولیه نمونه سازی از کلاس در این زبان برنامه نویسی رو خدمتتون توضیح میدم. ــ ساناز رضایی در 3 سال قبل

500 کاراکتر باقی مانده

1 جواب

0

طبق داکیومنتیشن خود پایتون (برای ساختن یک instance از یک کلاس) ، خیلی ساده میتونیم با صدا زدن اسم اون کلاس و ارسال پارامترهای مورد نیاز تعریف شده در __init__() یک نمونه از کلاس مورد نظر بسازیم. به عنوان مثال، کلاس زیر رو با نام Employee در نظر بگیرید:

class Employee:
   'Common base class for all employees'
   empCount = 0

   def __init__(self, name, salary):
      self.name = name
      self.salary = salary
      Employee.empCount += 1

   def displayCount(self):
     print "Total Employee %d" % Employee.empCount

   def displayEmployee(self):
      print "Name : ", self.name,  ", Salary: ", self.salary

در نمونه بالا، میبینیم که یک propery تعریف شده به اسم empCount و سه تا تابع (متد یا همون Attribute) با نام های __init__()، displayCount() و displayEmployee() تعریف شدن. نکته ای که وجود داره، تابع __init__() توی پایتون یه تابع خاص هست و درواقع نقش Constructor رو بازی میکنه. به این معنی که به محض اینکه شما از کلاس یک نمونه (یا همون instance) می سازید، اون تابع خود به خود صدا زده میشه و مقدار دهی اولیه رو انجام میده.

نحوه ساختن نمونه از کلاس، صرفا با صدا زدن نام اون کلاس اتفاق میوفته (اینم بگم که اون کلاس باید در اون scope تعریف شده باشه یا ایمپورت شده باشه). نکته ی مهم اینجاست که ارسال تمام مقادیر تعریف شده در تابع __init__() زمان ساختن نمونه از یک کلاس الزامیه. من الان یک شی نمونه (instance object) از کلاس بالا رو می سازم و مقداری مورد نیاز رو براش ارسال میکنم:

emp1 = Employee("Zara", 2000)

الان یک شی از کلاسم دارم و میتونم از Attributeش استفاده کنم به این شکل:

emp1.displayEmployee()

که خروجیش میشه:

Name :  Zara ,Salary:  2000

خب تا اینجا، یاد گرفتیم که یک کلاس بسازیم، توش اتریبیوت تعریف کنیم، ازش شی نمونه بسازیم، صداش بزنیم و براش مقادیر مورد نظر رو ارسال کنیم و نهایتا هم ازش خروجی بگیریم.


در مثال شما هم، باید به این شکل از کلاس مورد نظرتون نمونه بسازید:

obj = DFA(self, states, alphabet, delta, start, accepts)

نکته ای که وجود داره، اینه که مقادیر alphabet، accepts، delta و .. رو باید از قبل تعریف کنید؛ مثلا تابع accepts رو میشه به این شکل تعریف کرد:

def accepts(transitions,initial,accepting,s):
    state = initial
    try:
        for c in s:
            state = transitions[state][c]
        if(state in accepting):
            return 'Accepted'
        else:
            return 'Rejected'
    except:
        return 'Rejected'

و قبل از ساختن یک نمونه از DFA باید تابع accepts رو صدا بزنید (و مقادیر مورد نظرش رو براش ارسال کنید) و توی یک متغییر بریزید و نهایتا برای ساختن نمونه از کلاس DFA اون متغییر رو هم به عنوان آرگومان accepts براش ارسال کنید.

جواب داده شده در ساناز رضایی
1366 امتیاز


ممنونم ولی سوال من این بود که delta رو چه طوری باید تعریف میکردم؟ ــ امیرحمزه باقری در 3 سال قبل

آدرس بدون عنوان کد کامل من در این آدرسه ــ امیرحمزه باقری در 3 سال قبل

500 کاراکتر باقی مانده


جواب شما
     
.....
×

×

جعبه لام تا کام


لام تا کام نسخه صفحه کلید نیز راه اندازی شده است. شما با استفاده از کلیدهای موجود بر روی صفحه کلید دستگاهتان می توانید با وب سایت ارتباط برقرار کنید.
لیست کلید های میانبر

تبلیغات توضیحی


داپ اَپ اولین پلتفرم کش‌بک در ایران
اگه میخوای از خریدهایی که میکنی، پاداش نقدی دریافت کنی داپ اَپ رو نصب کن.

تبلیغات تصویری