CI40777HW1.pdf

‫ﺑﻪ ﻧﺎم ﺧﺪا‬
‫ﺗﻤﺮﻳﻦ ﺳﺮي اول‬
‫ﻣﻮﻋﺪ ﺗﺤﻮﻳﻞ‪1391/12/20 :‬‬
‫ﻓﺮﻣﺖ ﺗﺤﻮﻳﻞ ﺑﻪ ﺻﻮرت ﻳﻚ ﻓﺎﻳﻞ ﻓﺸﺮده ﺑﻪ ﻧﺎم ‪ HW1_StudentNumber.rar‬ﻣﻲﺑﺎﺷﺪ ﻛﻪ ﺷﺎﻣﻞ ﻛﺪﻫﺎي ﺑﺮﻧﺎﻣـﻪ و ﻳـﻚ ﻓﺎﻳـﻞ ‪ pdf‬ﺣـﺎوي‬
‫ﮔﺰارشﻫﺎي ﺧﻮاﺳﺘﻪ ﺷﺪه و ﭘﺎﺳﺦ ﺳﻮالﻫﺎي ﺗﺸﺮﻳﺤﻲ اﻳﻦ ﺗﻤﺮﻳﻦ اﺳﺖ‪ .‬اﻳﻦ ﻓﺎﻳﻞ را ﺑﺎ ﻋﻨﻮان ‪ HW1_StudentNumber‬ﺑﻪ ﭘﺴﺖ اﻟﻜﺘﺮوﻧﻴﻜﻲ‬
‫‪ [email protected]‬ارﺳﺎل ﻧﻤﺎﻳﻴﺪ‪ .‬در ﺻﻮرت داﺷﺘﻦ ﻫﺮﮔﻮﻧﻪ ﻣﺸﻜﻞ ﺑﻪ آدرس ‪ [email protected]‬اﻳﻤﻴﻞ ﺑﺰﻧﻴﺪ‪.‬‬
‫ﺗﻤﺮﻳﻦﻫﺎي ﺗﺸﺮﻳﺤﻲ‬
‫‪.1‬‬
‫از ﻧﻈﺮ ﺷﻤﺎ در اﻟﮕﻮرﻳﺘﻢﻫﺎي ژﻧﺘﻴﻜﻲ ﭼﮕﻮﻧﻪ ﻣﻲ ﺗﻮان از ﻫﻤﮕﺮاﻳﻲ زودرس ﺟﻠﻮﮔﻴﺮي ﻛﺮد؟ ﭼﻪ ﺑﺨﺸﻬﺎﻳﻲ از ﻳﻚ اﻟﮕﻮرﻳﺘﻢ ژﻧﺘﻴـﻚ اﺳـﺘﺎﻧﺪارد‬
‫ﺑﻴﺸﺘﺮﻳﻦ اﺛﺮ را در ﻫﻤﮕﺮاﻳﻲ زودرس ﻣﻲ ﺗﻮاﻧﻨﺪ داﺷﺘﻪ ﺑﺎﺷﻨﺪ؟‬
‫‪.2‬‬
‫ﻓﺮض ﻛﻨﻴﺪ اﻧﺪازه ﺟﻤﻌﻴﺖ در ﻣﻘﺎﻳﺴﻪ ﺑﺎ ﻓﻀﺎي ﻣﻮرد ﻧﻈﺮ ﺑﺮاي ﺟﺴﺘﺠﻮ ﺑﺴﻴﺎر ﻛﻮﭼﻚ ﺑﺎﺷﺪ‪ .‬ﭼﮕﻮﻧﻪ ﻣﻲ ﺗﻮان اﻃﻤﻴﻨﺎن ﺣﺎﺻﻞ ﻛﺮد ﻛـﻪ ﻛـﻞ‬
‫ﻓﻀﺎ ﺗﻮﺳﻂ اﻓﺮاد ﺟﻤﻌﻴﺖ ﻣﻮرد ﺟﺴﺘﺠﻮ ﻗﺮار ﺧﻮاﻫﺪ ﮔﺮﻓﺖ؟‬
‫‪ .3‬ﻓﺮض ﺷﻮد ﺷﺮط ﻫﻤﮕﺮاﻳﻲ زﻳﺮ را اﻧﺘﺨﺎب ﻛﺮدهاﻳﻢ‪:‬‬
‫"ﻫﺮ ﮔﺎه ﺗﻐﻴﻴﺮ ﻋﻤﺪه اي در ﻣﻴﺎﻧﮕﻴﻦ ﺗﺎﺑﻊ ‪ fitness‬در ﺟﻤﻌﻴﺖ در ﭼﻨﺪ ﺑﺎر ﺗﻜﺮار ﻣﺘﻮاﻟﻲ اﻟﮕﻮرﻳﺘﻢ رخ ﻧﺪاد‪ ،‬اﻟﮕﻮرﻳﺘﻢ را ﻣﺘﻮﻗﻒ ﻛﻦ‪" .‬‬
‫ﻧﻘﺎط ﺿﻌﻒ و ﻗﻮت اﻳﻦ اﻧﺘﺨﺎب را ﺷﺮح دﻫﻴﺪ‪ .‬از ﻧﻈﺮ ﺷﻤﺎ ﻣﺸﻜﻞ اﺻﻠﻲ اﻳﻦ اﻧﺘﺨﺎب ﭼﻪ ﺧﻮاﻫﺪ ﺑﻮد؟‬
‫ﺗﻤﺮﻳﻦ ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ‬
‫در اﻳﻦ ﺗﻤﺮﻳﻦ ﺑﻪ دﻧﺒﺎل ﻳﺎﻓﺘﻦ ﻳﻚ راه ﺣﻞ ﺑﺮاي ﭘﺎزل اﻋﺪاد ﻫﺴﺘﻴﻢ‪ .‬ورودي اﻟﮕﻮرﻳﺘﻢ دو ﻋـﺪد اﺳـﺖ ﻛـﻪ ﺗﻌـﺪاد ﺳـﻄﺮﻫﺎ)‪ (n‬و ﺳـﺘﻮن ﻫـﺎ)‪ (m‬را‬
‫ﻣﺸﺨﺺ ﻣﻲ ﻛﻨﺪ‪ .‬ﺳﭙﺲ ﻳﻚ ﭘﺎزل اﻋﺪاد ﺳﺎﺧﺘﻪ ﺷﺪه و ﺑﻪ ﺻﻮرت ﺗﺼﺎدﻓﻲ ﺑﺎ اﻋﺪاد ﺑﻴﻦ ‪ 1‬ﺗﺎ )‪ (nm-1‬ﭘﺮ ﻣﻲ ﺷـﻮد‪ .‬در زﻳـﺮ ﻣﺜـﺎﻟﻲ از ﻳـﻚ ﭘـﺎزل‬
‫ﻧﺸﺎن داده ﺷﺪه اﺳﺖ‪.‬‬
‫‪n = 3, m = 5‬‬
‫‪13 2‬‬
‫‪14 8‬‬
‫‪5‬‬
‫‪12 10‬‬
‫‪6‬‬
‫‪4‬‬
‫‪3‬‬
‫‪9‬‬
‫‪11‬‬
‫‪1‬‬
‫‪7‬‬
‫در اﻳﻨﺠﺎ ﺑﻪ دﻧﺒﺎل اﻳﻦ ﻫﺴﺘﻴﻢ ﻛﻪ اﻋﺪاد ﻣﻮﺟﻮد در اﻳﻦ ﺟﺪول ﻣﺮﺗﺐ ﺷﻮﻧﺪ‪ .‬ﺑﻪ اﻳﻦ ﻣﻌﻨﺎ ﻛﻪ ﺟﺪول ﺑﻪ ﺻﻮرت زﻳﺮ در آﻳﺪ‪:‬‬
‫‪5‬‬
‫‪4‬‬
‫‪3‬‬
‫‪2‬‬
‫‪1‬‬
‫‪10‬‬
‫‪9‬‬
‫‪8‬‬
‫‪7‬‬
‫‪6‬‬
‫‪11 12 13 14‬‬
‫ﺣﺮﻛﺎت ﻣﺠﺎز در ﻫﺮ ﻣﺮﺣﻠﻪ ﺟﺎﺑﺠﺎﻳﻲ ﺧﺎﻧﻪ ﺧﺎﻟﻲ ﺑﺎ ﻳﻜﻲ از ﺧﺎﻧﻪ ﻫﺎي ﺑﺎﻻ‪ ،‬ﭘﺎﻳﻴﻦ‪ ،‬ﭼﭗ و راﺳﺖ اﺳﺖ‪ .‬ﻳﻌﻨﻲ ﻋﻤﻞ ﻫﺎي ﻣﺠﺎز در ﻫﺮ ﻣﺮﺣﻠـﻪ ﻋﺒـﺎرت‬
‫اﺳﺖ از‪:‬‬
‫‪ :R .1‬ﺧﺎﻧﻪ ﺧﺎﻟﻲ ﺑﺎ ﻋﺪد ﻣﻮﺟﻮد در ﺳﻤﺖ راﺳﺖ ﺧﻮد ﺟﺎﺑﺠﺎ ﺷﻮد‪ .‬اﮔﺮ ﺧﺎﻧﻪ ﺧﺎﻟﻲ در ﻣﺮز راﺳﺖ ﭘﺎزل ﻗﺮار داﺷﺖ ﺑﺎ ﺧﺎﻧﻪ ﻣﻮﺟﻮد در ﻫﻤﺎن‬
‫ﺳﻄﺮ و ﻣﺮز ﺳﻤﺖ ﭼﭗ ﭘﺎزل ﺟﺎﺑﺠﺎ ﻣﻲ ﺷﻮد‬
‫‪.2‬‬
‫‪ :L‬ﺧﺎﻧﻪ ﺧﺎﻟﻲ ﺑﺎ ﻋﺪد ﻣﻮﺟﻮد در ﺳﻤﺖ ﭼﭗ ﺧﻮد ﺟﺎﺑﺠﺎ ﺷﻮد‪ .‬اﮔﺮ ﺧﺎﻧﻪ ﺧﺎﻟﻲ در ﻣﺮز ﭼﭗ ﭘﺎزل ﻗﺮار داﺷﺖ ﺑﺎ ﺧﺎﻧـﻪ ﻣﻮﺟـﻮد در ﻫﻤـﺎن‬
‫ﺳﻄﺮ و ﻣﺮز ﺳﻤﺖ راﺳﺖ ﭘﺎزل ﺟﺎﺑﺠﺎ ﻣﻲ ﺷﻮد‬
‫‪ :U .3‬ﺧﺎﻧﻪ ﺧﺎﻟﻲ ﺑﺎ ﻋﺪد ﻣﻮﺟﻮد در ﺳﻤﺖ ﺑﺎﻻي ﺧﻮد ﺟﺎﺑﺠﺎ ﺷﻮد‪ .‬اﮔﺮ ﺧﺎﻧﻪ ﺧﺎﻟﻲ در ﻣﺮز ﺑﺎﻻي ﭘﺎزل ﻗﺮار داﺷﺖ ﺑﺎ ﺧﺎﻧﻪ ﻣﻮﺟﻮد در ﻫﻤـﺎن‬
‫ﺳﺘﻮن و ﻣﺮز ﭘﺎﻳﻴﻦ ﭘﺎزل ﺟﺎﺑﺠﺎ ﻣﻲ ﺷﻮد‬
‫‪ :D .4‬ﺧﺎﻧﻪ ﺧﺎﻟﻲ ﺑﺎ ﻋﺪد ﻣﻮﺟﻮد در ﺳﻤﺖ ﭘﺎﻳﻴﻦ ﺧﻮد ﺟﺎﺑﺠﺎ ﺷﻮد‪ .‬اﮔﺮ ﺧﺎﻧﻪ ﺧﺎﻟﻲ در ﻣﺮز ﭘﺎﻳﻴﻦ ﭘﺎزل ﻗﺮار داﺷﺖ ﺑﺎ ﺧﺎﻧﻪ ﻣﻮﺟﻮد در ﻫﻤﺎن‬
‫ﺳﺘﻮن و ﻣﺮز ﺑﺎﻻي ﭘﺎزل ﺟﺎﺑﺠﺎ ﻣﻲ ﺷﻮد‬
‫در اداﻣﻪ ﻧﺘﻴﺠﻪ اﻋﻤﺎل ‪ 4‬ﻋﻤﻠﮕﺮ روي ﺣﺎﻟﺖ زﻳﺮ ﻧﺸﺎن داده ﺷﺪه اﺳﺖ‪:‬‬
‫‪R‬‬
‫‪L‬‬
‫‪U‬‬
‫‪D‬‬
‫ﺑﺎ اﺳﺘﻔﺎده از زﺑﺎن ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﻣﺘﻠﺐ‪ ،‬اﻟﮕﻮرﻳﺘﻢ ژﻧﺘﻴﻜﻲ را ﻃﺮاﺣﻲ و ﭘﻴﺎده ﺳﺎزي ﻛﻨﺪ ﻛﻪ ﺑﻪ ازاي ﻫﺮ ورودي دﻟﺨﻮاه دﻧﺒﺎﻟﻪ ﺣﺮﻛﺎﺗﻲ را ﺗﻮﻟﻴﺪ ﻧﻤﺎﻳﺪ‬
‫ﻛﻪ ﭘﺎزل را ﺣﻞ ﻛﺮده و اﻋﺪاد داﺧﻞ آن را ﻣﺮﺗﺐ ﻛﻨﺪ‪ .‬ﺗﻮﺟﻪ ﺷﻮد ﻛﻪ ﻟﺰوﻣﻲ ﻧﺪارد ﻛﻪ اﻳﻦ دﻧﺒﺎﻟﻪ ﺑﻬﻴﻨﻪ ﺑﺎﺷﺪ‪ .‬ﺑﺮاي ﻣﺜﺎل ﺑﺎ ﺷﺮوع از ﺣﺎﻟﺖ اوﻟﻴﻪ زﻳﺮ‬
‫و ﭘﻴﻤﻮدن دﻧﺒﺎﻟﻪ ﻣﺸﺨﺺ ﺷﺪه ﭘﺎزل ﺣﻞ ﻣﻲ ﺷﻮد‪.‬‬
‫‪L‬‬
‫‪L‬‬
‫‪D‬‬
‫‪R‬‬
‫ﻫﻤﭽﻨﻴﻦ ﻣﻮارد زﻳﺮ را ﺑﻪ ﻃﻮر ﻛﺎﻣﻞ در ﮔﺰارش ﺧﻮد ﺗﺸﺮﻳﺢ ﻛﻨﻴﺪ‪:‬‬
‫‪ .1‬ﻧﺤﻮه ﻧﻤﺎﻳﺶ راه ﺣﻞ ﻫﺎي ﻛﺎﻧﺪﻳﺪ ﺑﺮاي ﺣﻞ ﻣﺴﺎﻟﻪ در ﻓﻀﺎي ‪ genotype‬ﺑﻪ ﭼﻪ ﺻﻮرت ﻫﺴﺘﻨﺪ؟‬
‫‪ .2‬ﻧﺤﻮه ﺗﺒﺪﻳﻞ اﻳﻦ ﻛﺎﻧﺪﻳﺪﻫﺎ در ﻓﻀﺎي ‪ genotype‬ﺑﻪ ﻓﻀﺎي ‪ phenotype‬را ﺷﺮح دﻫﻴﺪ‪.‬‬
‫‪ .3‬ﻧﺤﻮه ﺗﻮﻟﻴﺪ ﻫﺮ ﻧﺴﻞ از روي ﻧﺴﻞ ﻗﺒﻞ ﺑﻪ ﭼﻪ ﺻﻮرت اﺳﺖ؟ اﭘﺮاﺗﻮرﻫﺎﻳﻲ ﻛﻪ اﺳﺘﻔﺎده ﻛﺮده اﻳﺪ را ﺷﺮح دﻫﻴﺪ‪.‬‬
‫‪.4‬‬
‫ﻓﻠﻮﭼﺎرت اﻟﮕﻮرﻳﺘﻢ ﭘﻴﺎده ﺳﺎزي ﺷﺪه را رﺳﻢ ﻛﺮده و ﺑﻴﺎن ﻧﻤﺎﻳﻴﺪ ﻛﻪ از ﻧﻈﺮ ﺷﻤﺎ در ﻛﺪام ﺑﺨﺶ ﻫﺎ ﻣﻲ ﺗﻮان ﺗﻐﻴﻴﺮاﺗﻲ اﻳﺠﺎد ﻛﺮد ﻛﻪ راه‬
‫ﺣﻞ ﻫﺎي ﺑﻬﻴﻨﻪ ﺗﺮي ﺑﺮاي ﻣﺴﺎﻟﻪ ﭘﻴﺪا ﺷﻮد؟ اﻳﻦ ﺗﻐﻴﻴﺮات ﺑﻪ ﭼﻪ ﺻﻮرت ﻣﻲ ﺗﻮاﻧﻨﺪ ﺑﺎﺷﻨﺪ؟‬
‫‪.5‬‬
‫ﺗﻮاﺑﻊ ﭘﻴﺎده ﺳﺎزي ﺷﺪه را ﺷﺮح دﻫﻴﺪ‪.‬‬
‫ﻫﻤﭽﻨﻴﻦ اﻧﺘﻈﺎر ﻣﻲرود در ﺗﻤﺮﻳﻦﻫﺎي ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ اﺳﻜﺮﻳﭙﺘﻲ ﻧﻮﺷﺘﻪ ﺷﻮد ﻛﻪ از اﺑﺘﺪا ﺗﺎ اﻧﺘﻬﺎي اﻟﮕﻮرﻳﺘﻢ اﺟﺮا ﺷﺪه و ﻧﺘﺎﻳﺞ ﻧﺸﺎن داده ﺷﻮد‪.‬‬
‫ﺑﺨﺶ رﻗﺎﺑﺘﻲ‪ :‬اﻟﮕﻮرﻳﺘﻢ ژﻧﺘﻴﻜﻲ را ﭘﻴﺎده ﺳﺎزي ﻛﻨﻴﺪ ﻛﻪ راه ﺣﻠﻲ ﺑﻬﻴﻨﻪ ﺑﺮاي ﻫﺮ ورودي دﻟﺨﻮاه ﭘﻴﺪا ﻛﻨﺪ‪ .‬اﻳﻦ اﻣﺘﻴﺎز ﺑﻪ ‪ 3‬اﻟﮕﻮرﻳﺘﻢ ﺑﺮﺗﺮي ﺗﻌﻠـﻖ‬
‫ﻣﻲ ﮔﻴﺮد ﻛﻪ ﺑﻪ ﻃﻮر ﻣﺘﻮﺳﻂ ﻛﻮﺗﺎﻫﺘﺮﻳﻦ ﺟﻮاﺑﻬﺎ را ﺗﻮﻟﻴﺪ ﻧﻤﺎﻳﺪ‪.‬‬