project4DA.pdf

‫ﭘﺮوژﻩ درس ﻃﺮاﺣﯽ اﻟﮕﻮرﻳﺘﻢ هﺎ‬
‫اﺳﺘﺎد درس‪ :‬ﺁﻗﺎﯼ دﮐﺘﺮ ﺑﻴﮕﯽ‬
‫ﻣﻮﺿﻮع‪ :‬ﺑﺮﻧﺎﻣﻪ ﺣﻞ ﺟﺪول اﻋﺪاد‬
‫‪ (1‬ﺗﻌﺮﻳﻒ ‪:‬‬
‫ﺟﺪول اﻋﺪاد ﺳﻮدوﮐﻮ ﺑﻪ ﻧﻮﻋﯽ ﺟﺪول اﻋﺪاد ﮔﻔﺘﻪ ﻣﯽ ﺷﻮد ﮐﻪ ﻣﻌﻤﻮﻻ ﺑﻪ ﺻﻮرت ‪ 9×9‬اﺳﺖ ‪.‬‬
‫اﻳﻦ ﺟﺪول ﺳﭙﺲ ﺑﻪ ﻣﺮﺑﻌﺎت ‪ 3×3‬ﺗﻘﺴﻴﻢ ﻣﯽ ﺷﻮد‪.‬ﺗﻌﺪادﯼ از ﺧﺎﻧﻪ هﺎﯼ ﺟﺪول ﺑﺎ اﻋﺪاد‬
‫ﺗﺼﺎدﻓﯽ از ﺑﻴﻦ اﻋﺪاد ‪ 1‬ﺗﺎ ‪ 9‬ﭘﺮ ﻣﯽ ﺷﻮد‪ ،‬ﺳﭙﺲ ﺑﺎﻳﺪ ﺳﺎﻳﺮ ﺧﺎﻧﻪ هﺎﯼ ﺧﺎﻟﯽ ﺟﺪول ﺑﻪ ﮔﻮﻧﻪ اﯼ‬
‫ﭘﺮ ﺷﻮﻧﺪ ﮐﻪ هﺮﻳﮏ از اﻋﺪاد ‪ 1‬ﺗﺎ ‪ 9‬در هﺮ ﺳﻄﺮ و ﺳﺘﻮن ﺟﺪول ‪ 9×9‬و در هﺮ ﻣﺮﺑﻊ ‪3×3‬‬
‫ﻳﮑﺘﺎ و ﻏﻴﺮ ﺗﮑﺮارﯼ ﺑﺎﺷﻨﺪ‪.‬‬
‫ﺷﮑﻞ زﻳﺮ دو ﺳﻮدوﮐﻮ را ﻧﺸﺎن ﻣﯽ دهﺪ ﮐﻪ اوﻟﯽ ﺻﺮﻓًﺎ ﺷﺎﻣﻞ اﻋﺪاد اوﻟﻴﻪ و دوﻣﯽ ﺑﻪ ﻃﻮر‬
‫ﮐﺎﻣﻞ ﺣﻞ ﺷﺪﻩ اﺳﺖ‪:‬‬
‫هﻤﺎﻧﻄﻮر ﮐﻪ ﻣﺸﺎهﺪﻩ ﻣﻴﮑﻨﻴﺪ ﺳﻮدوﮐﻮ ﻓﻮق ﺑﺎ ﭼﻨﺪ ﻋﺪد‬
‫اوﻟﻴﻪ ﭘﺮ ﺷﺪﻩ اﺳﺖ ﮐﻪ اﻳﻦ اﻋﺪاد هﻤﺮاﻩ ﺑﺎ ﻣﺤﻞ ﻗﺮار ﮔﻴﺮﯼ در ﺳﻮدوﮐﻮ ﺑﻪ ﻋﻨﻮان ﭘﺎراﻣﺘﺮ‬
‫ورودﯼ اﻟﮕﻮرﻳﺘﻢ در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﻣﯽ ﺷﻮد‪.‬‬
‫ﺳﻮدوﮐﻮ ﺣﻞ ﺷﺪﻩ‪.‬اﻋﺪاد ﭘﺮرﻧﮓ اﻋﺪاد اوﻟﻴﻪ هﺴﺘﻨﺪ‬
‫ﺑﻪ ازاﯼ هﺮ ﻋﺪد ﻃﺒﻴﻌﯽ ‪ n‬ﻣﯽ ﺗﻮان ﺳﻮدوﮐﻮﻳﯽ از ﻣﺮﺗﺒﻪ ‪ n‬رﺳﻢ ﮐﺮد ﮐﻪ ﺗﻌﺪاد ﺳﻄﺮ‪،‬ﺳﺘﻮن‬
‫و واﺣﺪهﺎﯼ ان ‪ n×n‬اﺳﺖ‪.‬‬
‫ﺑﻪ ﻳﮏ ﺟﺪول ﺳﻮدوﮐﻮﯼ ﺧﺎﻟﯽ و ﺑﺪون اﻋﺪاد ﺗﺼﺎدﻓﯽ اوﻟﻴﻪ ﻳﮏ "ﻣﺮﺑﻊ ﻻﺗﻴﻦ " ﻣﯽ‬
‫ﮔﻮﻳﻨﺪ‪.‬اﺛﺒﺎت ﻣﯽ ﺷﻮد از ﺑﻴﻦ ‪ 1000000‬ﻣﺮﺑﻊ ﻻﺗﻴﻦ ﺗﻨﻬﺎ ﻳﮑﯽ ﺳﻮدوﮐﻮ اﺳﺖ‪.‬‬
‫از ﻃﺮف دﻳﮕﺮ ﺑﺴﻴﺎرﯼ از ﺳﻮدوﮐﻮهﺎﯼ ﺑﺪﺳﺖ اﻣﺪﻩ از ﻳﮏ ﻣﺮﺑﻊ ﻻﺗﻴﻦ در واﻗﻊ‬
‫ﺑﺎزﺗﺎب‪،‬ﮔﺮدش ﻳﺎ ﺟﺎﺑﻪ ﺟﺎﻳﯽ ﺳﻮدوﮐﻮﻳﯽ ﻳﮑﺴﺎن ﻣﯽ ﺑﺎﺷﻨﺪ‪.‬ﺑﻨﺎﺑﺮاﻳﻦ ﺗﻌﺪاد ﺳﻮدوﮐﻮهﺎﯼ ﻣﺘﻔﺎوت‬
‫ﺑﺪﺳﺖ ﺁﻣﺪﻩ از ﻳﮏ ﻣﺮﺑﻊ ﻻﺗﻴﻦ ﺑﻪ ﺷﺪت ﮐﺎهﺶ ﻣﻴﺎﺑﺪ‪.‬‬
‫‪(2‬ﺷﺮح ﭘﺮوژﻩ‪:‬‬
‫ﺑﺮاﯼ ﻳﮏ ﺳﻮدوﮐﻮ ﻣﯽ ﺗﻮان راﻩ ﺣﻞ هﺎﯼ زﻳﺎدﯼ اراﺋﻪ ﮐﺮد‪.‬اﻣﺎ ﺗﻨﻬﺎ ﻳﮏ ﺣﻞ ﻧﻬﺎﻳﯽ ﺑﺮاﯼ ان‬
‫ﻣﻮﺟﻮد اﺳﺖ‪،‬ﮐﻪ ﺑﺎﻳﺪ ﺑﻪ ﺻﻮرت ﺧﺮوﺟﯽ اﻟﮕﻮرﻳﺘﻢ اراﺋﻪ ﺷﻮد‪.‬هﺪف از اﻧﺠﺎم اﻳﻦ ﭘﺮوژﻩ اﻳﻦ‬
‫اﺳﺖ ﮐﻪ ﺑﺮﻧﺎﻣﻪ اﯼ ﺑﺮاﯼ ﭘﻴﺎدﻩ ﺳﺎزﯼ ﺣﻞ ﺳﻮدوﮐﻮﯼ دادﻩ ﺷﺪﻩ ﺗﻮﺳﻂ ﮐﺎرﺑﺮ داﺷﺘﻪ ﺑﺎﺷﻴﻢ‪.‬اﻳﻦ‬
‫ﺑﺮﻧﺎﻣﻪ ﻳﮏ ﺳﻮدوﮐﻮ از ﮐﺎرﺑﺮ ﺑﻪ ﻋﻨﻮان ورودﯼ درﻳﺎﻓﺖ و ﺣﻞ ﻧﻬﺎﻳﯽ ﺳﻮدوﮐﻮ را ﺑﻪ ﻋﻨﻮان‬
‫ﺧﺮوﺟﯽ ﻣﯽ دهﺪ‪.‬‬
‫• ﺑﺮﻧﺎﻣﻪ ﺷﻤﺎ ﺑﺎﻳﺪ ﻗﺎﺑﻠﻴﺖ ﺣﻞ هﺮ ﺳﻮدوﮐﻮ ورودﯼ را داﺷﺘﻪ و در ﺻﻮرت ﺣﻞ ﻧﺎﭘﺬﻳﺮﯼ‬
‫)ﺟﺪول ورودﯼ ﻳﮏ ﺳﻮدوﮐﻮ ﻧﻴﺴﺖ( ﺁن را اﻋﻼم ﮐﻨﺪ‪.‬‬
‫• روش ﻣﻮرد ﻧﻈﺮ در ﺣﻞ اﻳﻦ ﭘﺮوژﻩ ‪back-tracking‬اﺳﺖ و ﺑﻪ ﺳﺎﻳﺮ اﻟﮕﻮرﻳﺘﻢ هﺎﯼ‬
‫ﺣﻞ ﻧﻤﺮﻩ اﯼ ﺗﻌﻠﻖ ﻧﻤﯽ ﮔﻴﺮد‪.‬‬
‫‪(3‬ﭼﮕﻮﻧﮕﯽ ﺗﺤﻮﻳﻞ ﭘﺮوژﻩ‪:‬‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫ﺗﺤﻮﻳﻞ ﭘﺮوژﻩ ﺑﺼﻮرت ﺣﻀﻮرﯼ هﻤﺮاﻩ ﺑﺎ ﻣﺴﺘﻨﺪات ﻣﮑﺘﻮب در ﺳﺎﻳﺖ داﻧﺸﮑﺪﻩ و در‬
‫زﻣﺎن اﻋﻼن ﺷﺪﻩ ﻣﯽ ﺑﺎﺷﺪ‪.‬‬
‫ﺗﺎرﻳﺦ ﺗﺤﻮﻳﻞ اﻳﻦ ﭘﺮوژﻩ ﺑﻪ دﻟﻴﻞ ﻣﺤﺪودﻳﺖ ارﺳﺎل ﻧﻤﺮﻩ ﻏﻴﺮ ﻗﺎﺑﻞ ﺗﻤﺪﻳﺪ اﺳﺖ‪.‬‬
‫ﭘﺮوژﻩ هﺎﯼ هﻤﺴﺎن ﺗﺎ ‪ %150‬ﻧﻤﺮﻩ ﻣﻨﻔﯽ درﻳﺎﻓﺖ ﻣﯽ ﮐﻨﻨﺪ‪.‬‬
‫ﻣﺴﺘﻨﺪات ﺑﺎﻳﺪ ﻣﺸﺘﻤﻞ ﺑﺮ ﻧﺤﻮﻩ ﺣﻞ ﻣﺴﺌﻠﻪ و ﺷﺮح ﮐﺪ ﺑﺎﺷﺪ‪.‬‬
‫ﺑﻪ ﭘﺮوژﻩ هﺎﯼ ﺑﺮﮔﺰﻳﺪﻩ ﺗﺎ ‪ %50‬ﻧﻤﺮﻩ اﺿﺎﻓﻪ ﺗﻌﻠﻖ ﻣﯽ ﮔﻴﺮد‪.‬‬
‫ﭘﺮوژﻩ را در ﺗﺎرﻳﺦ ﻣﻘﺮر ﺑﻪ ﺁدرس ‪ [email protected]‬ﻣﻴﻞ ﺑﺰﻧﻴﺪ‪.‬‬
‫‪ Subject: DA4-ID1,ID2‬ﻗﺮار دهﻴﺪ‪.‬‬
‫اﻣﺘﻴﺎز اﺿﺎﻓﻪ ﺑﻪ ﭘﺮوژﻩ هﺎﻳﯽ ﮐﻪ ﻗﺎﺑﻠﻴﺖ ﻃﺮاﺣﯽ ﺳﻮدوﮐﻮ و ﺳﭙﺲ ﺣﻞ ﺁن را داﺷﺘﻪ ﺑﺎﺷﺪ و‬
‫ﺑﺮ ﺣﺴﺐ ﻣﺮﺗﺒﻪ ورودﯼ )‪ ( n*n‬ﺗﻌﻠﻖ ﮔﺮﻓﺘﻪ و ‪ GUI‬ﭘﺮوژﻩ ﺗﺎﺛﻴﺮﯼ در اﻣﺘﻴﺎز ﺁن ﻧﺨﻮاهﺪ‬
‫داﺷﺖ‪.‬‬
‫ﮐﻠﻴﻪ ﺳﻮاﻻت ﺧﻮد را ﻣﯽ ﺗﻮاﻧﻴﺪ ﺑﻪ ﺁدرس ﻓﻮق ﺑﻔﺮﺳﺘﻴﺪ‪.‬‬