State machine چیست؟

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

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

6 پسندیده

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

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

1 پسندیده

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

1 پسندیده

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