State machine چیست؟

سلام من تازه میخوام ری اکت رو شروع بکنم اما با مفهمومی به اسم state machine روبه رو شدم
این مفهوم رو من تا حالا تو آرکیتکچر پترن ها ندیدم اصلا یه آرکیتکچر هست ؟
لطفا در موردش توضیح بدید

State machine از ریاضی گسسته میاد. بعضی از برنامه ها و ارتباط بین حالت ها را میشه توسط state machine شرح داد. مثلا ماشین تغییر پول به سکه.
فرض کن سه نوع سکه داریم با ارزش ۱،۵،۱۰
و اگه پولی که می خواهیم ۱۷ برگردونیم، اول میریم رو حالت ۱۰ اگه باقی مانده از ۱۰ بیشتر یا مساوی ۱۰ هستش، ۱۰ خروجی اول ماست ۱۰ از ۱۷ کم می‌کنیم
با ۷ میریم رو حالت ۵ چون از ۱۰ از ۷ کمتره اما از ۵ بیشتره، بعد حالت ۱ دوبار تا باقی مانده صفر میشه

6 Likes

سلام ممنون از پاسخگویی یه سؤال که الان به ذهنم خطور کرد این همون الگوریتم حریصانه نیست؟

درسته. ولی فکر کنم منظورشون این بود که میشه این شکلی الگوریتم حریصانه‌اش را مدل کرد. و با چک کردن شرط مقدار باقی مانده، حالت (State) را عوض کرد. درواقع هر کدام از انواع سکه‌ای که داریم را میتونیم یک حالت در نظر بگیریم.

1 Likes

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

1 Likes

من از فرانت‌اند سر درنمیارم. ولی میدونم برای برنامه تقریبا پیچیده، از stateها استفاده میکنن که مسئله آسون‌تر بشه. که خیلی معمول هست توی برنامه نویسی front. فکر کنم با Redux این کار رو انجام میدن توی ریکت.