ورود

View Full Version : ساده کردن عبارت بولی



sahar_2010
جمعه 20 مرداد 1391, 14:14 عصر
من یه راهنمایی میخواستم:
سوال من راجه به ساده کردن یه عبارت بولی هست:
مثلا عبارت xy+x`y را از ورودی گرفته بعد مینترم ها رامشخص کرده وبعد عبارت ساده شده رانشان دهد.
مثال:
xy+x`y عبارت موردنظر. مینترم ها: m3=1 , m1=1 .و در نهایت عبارت ساده شده برابر با y خواهد بود.

الان من مینترمها رو دارم ولی چه طوری ساده کنم عبارت رو؟؟؟؟؟http://www.iran-eng.com/images/smilies/frown.gifhttp://www.iran-eng.com/images/smilies/frown.gifhttp://www.iran-eng.com/images/smilies/frown.gifhttp://www.iran-eng.com/images/smilies/2/icon_crying.gif


الان برنامه رو تا جایی نوشتم که مینترم ها رو دارم فقط باید ساده کنم عبارت رو،یه روش اینه که یکی یکی حساب کنم که خیلی طولانی میشه.کسی میدونه چه جوری بنویسم؟

hadi0x7c7
جمعه 20 مرداد 1391, 18:08 عصر
این شاید به درد بخوره http://sourceforge.net/projects/qmcs/

mortezamsp
شنبه 21 مرداد 1391, 05:16 صبح
میتونی یکسری الگو تعریف کنی؟ مثلا وقتی الگوی xy+x'y دید خودش بجاش y بذاره. الگو تعریف کن.

sahar_2010
شنبه 21 مرداد 1391, 12:22 عصر
میتونی یکسری الگو تعریف کنی؟ مثلا وقتی الگوی xy+x'y دید خودش بجاش y بذاره. الگو تعریف کن.

ممنون ولی الان عبارت من توی یه آرایه هست .چه طوری بهش بگم که مقایسه کنه کل آرایه رو با مثلا عبارت xy+x`y ؟؟؟این روش واسه 2متغیرمیشه ولی واسه 3-4تا وقت گیره ...
الان خودم 18تا if نوشتم واسه 2متغیره که ساده کنه،ولی واسه 3-4 خیلی سخت میشه....

#target
شنبه 21 مرداد 1391, 22:53 عصر
ساده کردن با جدول کارنو (Karnaugh Map ) . میتونید بصورت برنامه همون کار که برای تشکیل جدول لازمه رو پیاده سازی کنین

اینجا ی حالت هست (http://www.codeproject.com/Articles/37031/Karnaugh-Map-Minimizer-3-Variables) . جستجو کنی گیر میاد .

hadi0x7c7
شنبه 21 مرداد 1391, 23:32 عصر
تمام نرم افزار هایی که این ساده سازی ها رو انجام میدن از الگوریتم کویین مک کلاسکی استفاده میکنن(شما هم) جدول کارنو هم تا اونجایی که یادمه واسه مینترم هایی بزرگتر (اندیسشون) خیلی ترسناک میشه !

لان خودم 18تا if نوشتم واسه 2متغیره که ساده کنه،ولی واسه 3-4 خیلی سخت میشه....

کللا ره به ترکستان است !