))ﺑﻪ ﻧﺎم ﺧﺪاوﻧﺪ ﺑﺨﺸﻨﺪه ي ﻣﻬﺮﺑﺎن (( ﺗﻤﺮﻳﻦ ﺷﻤﺎره ي 1درس ﻃﺮاﺣﻲ اﻟﮕﻮرﻳﺘﻤﻬﺎ ﻣﻬﻠﺖ ﺗﺤﻮﻳﻞ ﺗﻤﺮﻳﻦ 1387/1/23 :ﺳﺎﻋﺖ 23:59 ) ( Amortized Analysis , Proof Method ﻣﻼﺣﻈﺎت : اﻳﻦ ﺗﻤﺮﻳﻦ ﻫﻢ داراي ﻗﺴﻤﺘﻬﺎي ﺗﺌﻮري و ﻫﻢ ﻋﻤﻠﻲ اﺳﺖ .ﭘﺎﺳﺦ ﻗﺴﻤﺘﻬﺎي ﺗﺌﻮري و ﻋﻤﻠﻲ را در ﻗﺎﻟﺐ ﻳﻚ ﻓﺎﻳﻞ ﻓﺸﺮده ﺑﻪ ﻧﺎم Ex1-yourId.zipﺑﻪ آدرس [email protected]ﻣﻴﻞ ﻛﻨﻴﺪ. ﺑﻪ ﻫﻴﭻ وﺟﻪ ﻛﺎر ﻫﺎي ﻏﻴﺮ اﺧﻼﻗﻲ ﻣﺜﻞ روﻧﻮﻳﺴﻲ و ﻛﭙﻲ ﺑﺮﻧﺎﻣﻪ ي دﻳﮕﺮان و ....ﭘﺬﻳﺮﻓﺘﻪ ﻧﻴﺴﺖ .درﺻﻮرت ﻣﺸﺎﻫﺪه ﻧﻤﺮه ي ﺷﻤﺎ -100در ﻧﻈﺮﮔﺮﻓﺘﻪ ﻣﻲ ﺷﻮد) .اﮔﺮ ﺗﻤﺮﻳﻨﺎت را ﺑﺎ ﻫﻢ ﻣﻲ ﻧﻮﻳﺴﻴﺪ ﺳﻌﻲ ﻛﻨﻴﺪ ﻃﺮﻳﻖ ﻧﻮﺷﺘﻦ ﺷﻤﺎ ﻣﺎﻧﻨﺪ ﻳﻜﺪﻳﮕﺮ ﻧﺒﺎﺷﺪ .ﭼﻮن در ﺻﻮرت ﻣﺸﺎﺑﻬﺖ ﺑﺎ وﺟﻮد ﺑﻲ ﮔﻨﺎﻫﻲ ،ﮔﻨﺎﻫﻜﺎر ﺷﻨﺎﺧﺘﻪ ﺧﻮاﻫﻴﺪ ﺷﺪ و ﻧﻤﺮه ي ﺧﻮد را از دﺳﺖ ﺧﻮاﻫﻴﺪ داد( ﺑﻪ ﻫﻴﭻ وﺟﻪ زﻣﺎن ﺗﺤﻮﻳﻞ اﻳﻦ ﺗﻤﺮﻳﻦ ﺗﻤﺪﻳﺪ ﻧﻤﻲ ﺷﻮد .ﺑﻪ ازاي ﻫﺮﺳﺎﻋﺖ ﺗﺎﺧﻴﺮ 20ﻧﻤﺮه )از 100ﻧﻤﺮه( را از دﺳﺖ ﻣﻲ دﻫﻴﺪ. -ﻫﺮ ﮔﻮﻧﻪ ﺳﻮال و ﻣﺸﻜﻠﻲ و ﻳﺎ اﻳﺮادي را ﻣﻲ ﺗﻮاﻧﻴﺪ ﺑﺎ [email protected]در ﻣﻴﺎن ﺑﮕﺬارﻳﺪ. -1ﻧﻤﺎﻳﺶ در ﻣﺒﻨﺎي ﻓﺎﻛﺘﻮرﻳﻞ ☺ﺛﺎﺑﺖ ﻛﻨﻴﺪ ﻫﺮ ﻋﺪد ﻃﺒﻴﻌﻲ ﻣﺎﻧﻨﺪ nرا ﻣﻲ ﺗﻮان ﺑﻪ ﺻﻮرت ﻛﻪ در آن kو ﻫﺎ اﻋﺪاد ﺻﺤﻴﺢ و ﻧﺎﻣﻨﻔﻲ ﻫﺴﺘﻨﺪ و ﺑﻪ ازاي ﻫﺮ iدارﻳﻢ : ﺑﺮاي اﺛﺒﺎت اﻟﮕﻮرﻳﺘﻤﻲ اراﺋﻪ دﻫﻴﺪ .ﺑﻪ روش رﺳﻤﻲ اﺛﺒﺎت ﻛﻨﻴﺪ ﻛﻪ اﻟﮕﻮرﻳﺘﻢ ﺷﻤﺎ درﺳﺖ ﻛﺎر ﻣﻲ ﻛﻨﺪ) ﺗﻤﺎﻣﻲ ﻗﺴﻤﺘﻬﺎي، Initialization Maintenanceو Terminationرا ﺑﻪ دﻗﺖ ﺑﻴﺎن ﻛﻨﻴﺪ( ☻ﺑﺮﻧﺎﻣﻪ اي ﺑﻨﻮﻳﺴﻴﺪ ﻛﻪ اﻋﺪاد ﻃﺒﻴﻌﻲ داده ﺷﺪه را در ﻣﺒﻨﺎي ﻓﺎﻛﺘﻮرﻳﻞ ﻧﻤﺎﻳﺶ دﻫﺪ .ﺑﺮﻧﺎﻣﻪ ي ﺧﻮد را در ﻓﺎﻳﻞ fact.javaﻳﺎ fact.cpp ﺿﻤﻴﻤﻪ ي ﻣﺘﻦ ﭘﺎﺳﺦ ﺧﻮد ﺑﻪ اﻳﻦ ﺗﻤﺮﻳﻦ ارﺳﺎل ﻧﻤﺎﻳﻴﺪ .در ﻓﺎﻳﻞ ورودي ﺑﻪ ﺗﺮﺗﻴﺐ در ﻫﺮ ﺳﻄﺮ ﻳﻚ ﻋﺪد ﻧﻮﺷﺘﻪ ﺷﺪه اﺳﺖ ﻛﻪ ﺷﻤﺎ ﺑﺎﻳﺪ ﻣﻌﺎدل آن در ﻣﺒﻨﺎي ﻓﺎﻛﺘﻮرﻳﻞ رادر ﻓﺎﻳﻞ ﺧﺮوﺟﻲ ﺑﻪ ﺗﺮﺗﻴﺐ ﺑﻨﻮﻳﺴﻴﺪ .ﻓﺎﻳﻞ ورودي را از fact.inو ﺧﺮوﺟﻲ را ﺑﻪ ﻓﺎﻳﻞ fact.outﺑﺮﻳﺰﻳﺪ .ﺷﻜﻞ ﺧﺮوﺟﻲ ﺷﻤﺎ ﺑﺎﻳﺪ ﻛﺎﻣﻼ ﺑﻪ ﻗﺎﻟﺐ ﻣﺜﺎل زﻳﺮﺷﺒﻴﻪ ﺑﺎﺷﺪ ) از ﻟﺤﺎظ ﻓﺎﺻﻠﻪ ﮔﺬاري و : ( ... fact.in fact.out -2آﻧﺎﻟﻴﺰ ﺳﺮﺷﻜﻦ داده ﺳﺎﺧﺘﺎر ﺧﻮدﺳﺎﺧﺘﻪ ☺ ﻳﻚ ﺻﻒ FIFOﺑﻪ ﻧﺎم Qداراي ﻋﻤﻠﻴﺎت ﻫﺎي ) dequeue(Qو ) enqueue(Q, xﻣﻲ ﺑﺎﺷﺪ ﻛﻪ اوﻟﻲ از اﺑﺘﺪاي ﺻﻒ ﻳﻚ ﻋﻨﺼﺮ را ﺑﺮداﺷﺘﻪ و ﺑﺎزﻣﻲ ﮔﺮداﻧﺪ و دوﻣﻲ ﻋﻨﺼﺮ xرا ﺑﺎ اﻧﺘﻬﺎي ﺻﻒ اﺿﺎﻓﻪ ﻣﻲ ﻛﻨﺪ .ﻧﺸﺎن دﻫﻴﺪ ﻛﻪ ﻣﻲ ﺗﻮاﻧﻴﻢ اﻳﻦ ﺳﺎﺧﺘﻤﺎن داده را ﺑﺎ ﻛﻤﻚ دو ﭘﺸﺘﻪ ي Sو ’ Sﭘﻴﺎده ﺳﺎزي ﻛﺮد ﺑﻪ اﻳﻦ ﻧﺤﻮ ﻛﻪ ﻫﺰﻳﻨﻪ ي ﺳﺮﺷﻜﻦ ﻫﺮ ﻛﺪام از دو ﻋﻤﻞ ﺑﺎﻻ از) O(1ﺑﺎﺷﺪ. ♪ اﺑﺘﺪا اﻋﻤﺎل ) dequeue(Qو ) enqueue(Q, xرا ﺑﺎ اﻋﻤﺎل ﭘﺸﺘﻪ اي زﻳﺮ ﺷﺒﻴﻪ ﺳﺎزي ﻛﻨﻴﺪو ﺑﺮاي ﻫﺮ ﻛﺪام ﻳﻚ ﺷﺒﻪ ﻛﺪ ﺑﻨﻮﻳﺴﻴﺪ: ) : push(Q, xﻋﻨﺼﺮ xرا ﺑﻪ ﺑﺎﻻ ي ﭘﺸﺘﻪ ي Qاﺿﺎﻓﻪ ﻣﻲ ﻛﻨﺪ. ) : pop(Qﺑﺎﻻﺗﺮﻳﻦ ﻋﻨﺼﺮ ﭘﺸﺘﻪ را ﺣﺬف ﻣﻲ ﻛﻨﺪ و ﺑﻪ ﻋﻨﻮان ﺧﺮوﺟﻲ ﺑﻴﺮون ﻣﻲ دﻫﺪ. ) : empty(Qﺑﻪ ﻣﺤﺾ ﺧﺎﻟﻲ ﺷﺪن ﭘﺸﺘﻪ trueﺑﺮ ﻣﻲ ﮔﺮداﻧﺪ.♫ ﺣﺪاﻗﻞ ﺑﻪ دو روش از ﺑﻴﻦ روش ﻫﺎي aggregateو accountingو potential اﻳﻦ اﻋﻤﺎل ﺷﺒﻴﻪ ﺳﺎزي ﺷﺪه از ) O(1ﻣﻲ ﺑﺎﺷﺪ. ٢ ﺛﺎﺑﺖ ﻛﻨﻴﺪ ﻛﻪ ﻫﺰﻳﻨﻪ ي ﺳﺮﺷﻜﻦ ﻫﺮ ﻳﻚ
© Copyright 2025 Paperzz