da90-hw1.pdf

‫ﺑﺎﺳﻤﻪ ﺗﻌﺎﻟ‬
‫ﻃﺮاﺣ و ﺗﺤﻠﯿﻞ اﻟ ﻮرﯾﺘﻢﻫﺎ )‪(۴٠-٣۵۴‬‬
‫‪Design and Analysis of Algorithms‬‬
‫داﻧﺸ ﺪهی ﻣﻬﻨﺪﺳ ﮐﺎﻣﭙﯿﻮﺗﺮ‬
‫ﻣﺪرس‪ :‬ﻣﺤﻤﺪ ﻗﺪﺳ‬
‫ﻣﻮﻋﺪ ارﺳﺎل‪١٣٩٠/١٢/١٣ :‬‬
‫ﺗﻤﺮﯾﻦ ﮐﺘﺒ ‪ -‬ﺷﻤﺎرهی ‪١‬‬
‫• ﺗﻤﺮﯾﻦﻫﺎی ﺧﻮد را ﺑﻪ آدرس ‪ [email protected]‬ﺑﺎ ﻋﻨﻮان »‪ «HW1-STDID‬ارﺳﺎل ﮐﻨﯿﺪ ﮐﻪ در آن ‪STDID‬‬
‫ﺷﻤﺎرهی داﻧﺸﺠﻮﯾ ﺷﻤﺎﺳﺖ‪.‬‬
‫‪ .١‬ﻓﺮض ﮐﻨﯿﺪ دﻧﺒﺎﻟﻪ ای از ‪ n‬ﻋﺪد ﻣﺘﻤﺎﯾﺰ ‪ a١ , a٢ , . . . , an‬در ﯾ‬
‫ﻟﯿﺴﺖ ﻗﺮار ﮔﺮﻓﺘﻪ اﻧﺪ‪ .‬در ﻫﺮﻣﺮﺣﻠﻪ ﯾ‬
‫درﺧﻮاﺳﺖ‬
‫ﻣﺸﺎﺑﻪ زﯾﺮ از ﺟﺎﻧﺐ ﮐﺎرﺑﺮ اراﯾﻪ ﻣ ﺷﻮد ‪:‬‬
‫ﻋﺪد ‪ ai‬در ﮐﺠﺎی ﻟﯿﺴﺖ ﻗﺮار دارد‪.‬‬
‫ﮐﺎرﺑﺮ ﺑﺮای ﻫﺮ ﻋﻀﻮ ﺑﻪ ﻫﺮ ﺗﻌﺪادی ﻣ ﺗﻮاﻧﺪ اﯾﻦ درﺧﻮاﺳﺖ را داﺷﺘﻪ ﺑﺎﺷﺪ‪ .‬اﮔﺮ اﯾﻦ ﻋﻨﺼﺮ در ﺟﺎﯾ ﺎه ‪ k‬ﻗﺮار داﺷﺘﻪ ﺑﺎﺷﺪ‪،‬‬
‫ﻫﺰﯾﻨﻪی ‪ k‬ﺻﺮف ﭘﺎﺳ ﺑﻪ اﯾﻦ درﺧﻮاﺳﺖ ﻣ ﺷﻮد‪ .‬ﮐﺎر دﯾ ﺮی ﮐﻪ ﺑﺮروی اﯾﻦ ﻟﯿﺴﺖ ﻣ ﺗﻮان اﻧﺠﺎم داد‪ ،‬ﺟﺎ ﺑﻪ ﺟﺎﯾ دو‬
‫ﻋﻀﻮ ﻣﺘﻮاﻟ از اﯾﻦ ﻟﯿﺴﺖ ﺑﺎ ﻫﺰﯾﻨﻪ ی ‪ ١‬واﺣﺪ اﺳﺖ‪ .‬ﻫﺪف در اﯾﻦ ﻣﺴﺎﻟﻪ اراﯾﻪ اﻟ ﻮرﯾﺘﻤ اﺳﺖ ﮐﻪ ﺑﺎ اﺳﺘﻔﺎده از آن‬
‫ﻫﺰﯾﻨﻪ ی ﭘﺎﺳ ﺑﻪ ﯾ‬
‫از آن ﺟﺎﯾ ﮐﻪ اﯾﻦ ﯾ‬
‫دﻧﺒﺎﻟﻪ دﻟﺨﻮاه از درﺧﻮاﺳﺖ ﻫﺎ و ﻫﺰﯾﻨﻪ ﻫﺎی ﻣﺮﺑﻮط ﺑﻪ ﺟﺎﺑﻪ ﺟﺎﯾ اﻋﺪاد در ﻟﯿﺴﺖ ﮐﻤﯿﻨﻪ ﺷﻮد اﻣﺎ‬
‫ﻣﺴﺎﻟﻪ ﺑﺮﺧﻂ اﺳﺖ و ﻣﺎ ﺗﺮﺗﯿﺐ درﺧﻮاﺳﺖ ﻫﺎ را ﻧﻤ داﻧﯿﻢ اﯾﻦ اﻟ ﻮرﯾﺘﻢ را ﭘﯿﺸﻨﻬﺎد ﻣ ﮐﻨﯿﻢ ‪:‬‬
‫در ﻫﺮ ﻣﺮﺣﻠﻪ اﮔﺮ ﺗﻘﺎﺿﺎی ﯾﺎﻓﺘﻦ ﻋﺪدی ﮐﻪ در ﺟﺎﯾ ﺎه ‪ k‬ام ﻟﯿﺴﺖ ﻗﺮار داﺷﺖ از ﺳﻮی ﮐﺎرﺑﺮ اراﯾﻪ ﺷﺪ‪ ،‬ﺑﻌﺪ از ﭘﺎﺳ ﺑﻪ اﯾﻦ‬
‫در ﺧﻮاﺳﺖ اﯾﻦ ﻋﺪد را ﺑﺎ ‪ k − ١‬ﺟﺎ ﺑﻪ ﺟﺎﯾ ﻣﺘﻮاﻟ ﺑﻪ اﺑﺘﺪای ﻟﯿﺴﺖ ﻣﻨﺘﻘﻞ ﻣ ﮐﻨﯿﻢ‪ .‬ﺣﺎل ﺛﺎﺑﺖ ﮐﻨﯿﺪ اﮔﺮ ﻫﺰﯾﻨﻪ ﻣﯿﻨﻤﻢ‬
‫ﺑﺮای دﻧﺒﺎﻟﻪ ی ﻣﺸﺨﺼ از درﺧﻮاﺳﺖ ﻫﺎ ﺑﺮاﺑﺮ ‪ opt‬ﺑﺎﺷﺪ‪ ،‬ﻫﺰﯾﻨﻪ ی ﻧﺎﺷ از اﯾﻦ اﻟ ﻮرﯾﺘﻢ ﺣﺪاﮐﺜﺮ ﺑﺮاﺑﺮ ‪ ۴ × opt‬ﻣ ﺑﺎﺷﺪ‪.‬‬
‫‪ .٢‬ﻓﺮض ﮐﻨﯿﺪ ‪ n‬ﻋﺪد دودوﯾ دارﯾﺪ ﮐﻪ در اﺑﺘﺪا ﻫﻤﻪی آﻧﻬﺎ ﺑﺮاﺑﺮ ﯾ‬
‫ﻫﺴﺘﻨﺪ‪ .‬در ﻫﺮ ﻣﺮﺣﻠﻪ دو ﻋﺪد دﻟﺨﻮاه را اﻧﺘﺨﺎب‬
‫ﮐﺮده و از ﻣﺠﻤﻮﻋﻪ ﺣﺬف ﻣ ﮐﻨﯿﻢ و ﺑﻪ ﺟﺎی آﻧﻬﺎ ﺣﺎﺻﻞ ﺟﻤﻌﺸﺎن را ﻗﺮار ﻣ دﻫﯿﻢ‪ .‬اﮔﺮ دو ﻋﺪدی ﮐﻪ ﺣﺬف ﮐﺮدﯾﻢ‬
‫‪ b١‬و ‪ b٢‬ﺑﯿﺘ ﺑﺎﺷﻨﺪ‪ ،‬ﻫﺰﯾﻨﻪ اﯾﻦ ﻋﻤﻞ ﺑﺮاﺑﺮ اﺳﺖ ﺑﺎ‪:‬‬
‫) ‪ min(b١ , b٢‬ﺑﻪ ﻋﻼوهی ﺗﻌﺪاد ﺑﯿﺖﻫﺎی ﻧﻘﻠ در ﺟﻤ ﮐﻪ ﺑﻌﺪ از ﺑﯿﺖ ﺳﻤﺖ ﭼﭗ ﻋﺪد ﮐﻮﭼ ﺘﺮ ﺑﻪ وﺟﻮد ﻣ آﯾﺪ‪.‬‬
‫ﻣﺜﻼ ﻫﺰﯾﻨﻪی ﺟﻤ دو ﻋﺪد ‪ ١١٠٠‬و ‪ ١٠١١٠١٠٠‬ﺑﺮاﺑﺮ اﺳﺖ ﺑﺎ ‪ ۴ + ٣ = ٧‬و ﻫﺰﯾﻨﻪی ﺟﻤ دو ﻋﺪد ‪ ١٠١‬و ‪١٠٠٠٠١‬‬
‫ﺑﺮاﺑﺮ ‪ ٣‬اﺳﺖ‪ .‬ﺣﺎل ﺛﺎﺑﺖ ﮐﻨﯿﺪ اﮔﺮ ‪ m‬ﺑﺎر اﯾﻦ ﻋﻤﻞ را اﻧﺠﺎم دﻫﯿﻢ ﺣﺪاﮐﺜﺮ از )‪ O(m‬ﻫﺰﯾﻨﻪ ﺻﺮف ﮐﺮدهاﯾﻢ‪.‬‬
‫‪ .٣‬ﯾ‬
‫‪ quack‬ﺗﺮﮐﯿﺐ ﯾ‬
‫ﭘﺸﺘﻪ و ﯾ‬
‫ﺻﻒ ﻣ ﺑﺎﺷﺪ‪ .‬در واﻗ آن را ﻣ ﺗﻮان ﺑﻪ ﺻﻮرت ﯾ‬
‫ﻟﯿﺴﺖ از اﻋﻀﺎ ﮐﻪ از ﭼﭗ‬
‫ﺑﻪ راﺳﺖ ﻧﻮﺷﺘﻪ ﺷﺪﻧﺪ‪ ،‬ﻣﺸﺎﻫﺪه ﮐﺮد ﮐﻪ ﺳﻪ ﻋﻤﻞ زﯾﺮ را ﭘﺸﺘﯿﺒﺎﻧ ﻣ ﮐﻨﻨﺪ‪:‬‬
‫‪ : Push‬ﯾ‬
‫ﻋﻀﻮ ﺟﺪﯾﺪ ﺑﻪ اﻧﺘﻬﺎی ﺳﻤﺖ ﭼﭗ ﻟﯿﺴﺖ اﺿﺎﻓﻪ ﻣ ﮐﻨﺪ‪.‬‬
‫‪ : Pop‬ﺳﻤﺖ ﭼﭗ ﺗﺮﯾﻦ ﻋﻀﻮ ﻟﯿﺴﺖ را ﺣﺬف ﻣ ﮐﻨﺪ‪.‬‬
‫‪ : Pull‬ﺳﻤﺖ راﺳﺖ ﺗﺮﯾﻦ ﻋﻀﻮ ﻟﯿﺴﺖ را ﺣﺬف ﻣ ﮐﻨﺪ‪.‬‬
‫داده ﺳﺎﺧﺘﺎر ‪ quack‬را ﺑﺎ اﺳﻔﺎده از ﺳﻪ ﭘﺸﺘﻪ و )‪ O(١‬ﺣﺎﻓﻈﻪ اﺿﺎﻓ ﺑﻪ ﻃﻮری ﭘﯿﺎده ﺳﺎزی ﮐﻨﯿﺪ ﮐﻪ زﻣﺎن ﺳﺮﺷ ﻦ ﻫﺮ‬
‫دﻧﺒﺎﻟﻪ ای از اﯾﻦ اﻋﻤﺎل ﺑﺮاﺑﺮ )‪ O(١‬ﺑﺎﺷﺪ‪ .‬ﺗﻮﺟﻪ ﺷﻮد ﮐﻪ ﺗﻨﻬﺎ ﻧﻮع دﺳﺘﺮﺳ ﺑﻪ ﭘﺸﺘﻪ ﻫﺎ از ﻃﺮﯾﻖ اﻋﻤﺎل ‪ push،pop‬ﻣ‬
‫‪١‬‬
‫ﺑﺎﺷﺪ‪.‬‬
‫‪ .۴‬دﻧﺒﺎﻟﻪ ای از ﭘﺸﺘﻪ ﻫﺎی ‪ S٠ , S١ , . . .‬در ﻧﻈﺮ ﺑ ﯿﺮﯾﺪ ﮐﻪ ﻇﺮﻓﯿﺖ ﭘﺸﺘﻪ ی ‪ i‬ام ﺑﺮاﺑﺮ ‪ ٣i‬اﺳﺖ‪ .‬از ﻃﺮﻓ ﺳﺎﺧﺘﺎر اﯾﻦ ﭘﺸﺘﻪ ﻫﺎ‬
‫ﺑﻪ ﮔﻮﻧﻪ ای اﺳﺖ ﮐﻪ ﮐﺎرﺑﺮ ﻓﻘﻂ ﻣ ﺗﻮاﻧﺪ از ‪ S٠‬ﻋﻤﻞ ‪ push‬و ‪ pop‬را اﻧﺠﺎم دﻫﺪ‪ .‬ﻋﻼوه ﺑﺮ اﯾﻦ ﻗﺒﻞ از اﯾﻨ ﻪ ﻋﻀﻮی‬
‫ﺑﺘﻮاﻧﺪ در ﭘﺸﺘﻪ ی ‪ i‬ام ﮐﻪ ﭘﺮ ﻣ ﺑﺎﺷﺪ‪ ،‬ﻗﺮار ﮔﯿﺮد‪ ،‬ﺑﺎﯾﺪ اﺑﺘﺪا ﺗﻤﺎم اﻋﻀﺎی ‪ Si‬را ‪ pop‬ﮐﻨﯿﻢ و در )‪push S( i + ١‬‬
‫ﮐﻨﯿﻢ ﺗﺎ ﻓﻀﺎی ﺧﺎﻟ اﯾﺠﺎد ﺷﻮد‪ .‬اﮔﺮ )‪ S( i + ١‬ﻫﻢ ﭘﺮ ﺑﻮد‪ ،‬اﯾﻦ ﮐﺎر را ﺑﺮای آن ﺑﻪ ﺻﻮرت ﺑﺎزﮔﺸﺘ اﻧﺠﺎم ﻣ دﻫﯿﻢ‪.‬‬
‫ﺑﻪ ﺻﻮرت ﻣﺸﺎﺑﻪ‪ ،‬اﮔﺮ ﻋﻤﻞ ‪ pop‬ﺑﺨﻮاﻫﺪ ﺑﺮروی ﭘﺸﺘﻪ ی ‪ j‬ام اﻧﺠﺎم ﺷﻮد و اﯾﻦ ﭘﺸﺘﻪ ﺧﺎﻟ ﺑﺎﺷﺪ‪ ،‬اﺑﺘﺪا ﺑﺎﯾﺪ ‪ ٣ j‬ﻋﻀﻮ از‬
‫ﭘﺸﺘﻪ ی ‪ j + ١‬ﺑﻪ اﯾﻦ ﭘﺸﺘﻪ ﻣﻨﺘﻘﻞ ﮐﻨﯿﻢ و ﺳﭙﺲ ﻋﻤﻞ ‪ pop‬را اﻧﺠﺎم دﻫﯿﻢ‪ .‬ﻣﺸﺎﺑﻪ ﺣﺎﻟﺖ ﻗﺒﻞ اﮔﺮ ﭘﺸﺘﻪ ی ‪ j + ١‬ﻫﻢ‬
‫ﺧﺎﻟ ﺑﺎﺷﺪ‪ ،‬اﯾﻦ ﮐﺎر را ﺑﻪ ﺻﻮرت ﺑﺎزﮔﺸﺘ ﺑﺮای آن اﻧﺠﺎم ﻣ دﻫﯿﻢ‪.‬‬
‫ﻫﺰﯾﻨﻪ ی ﻫﺮ ﺗ‬
‫ﻋﻤﻞ ‪ push, pop‬ﻧﯿﺰ ﺑﺮاﺑﺮ )‪ O(١‬اﺳﺖ‪ .‬ﺛﺎﺑﺖ ﮐﻨﯿﺪ ﻫﺮ دﻧﺒﺎﻟﻪ ای از اﻋﻤﺎل ‪ push‬و ‪ pop‬ﺑﻪ ﺻﻮرت‬
‫ﺳﺮﺷ ﻦ ﻫﺰﯾﻨﻪ ای ﺑﺮاﺑﺮ )‪ O(lgn‬دارد ﮐﻪ ‪ n‬ﺑﺮاﺑﺮ ﻣﺎﮐﺴﯿﻤﻢ ﺗﻌﺪاد اﻋﻀﺎﯾ اﺳﺖ ﮐﻪ در اﯾﻦ داده ﺳﺎﺧﺘﺎر در ﻃﻮل اﯾﻦ‬
‫ﻋﻤﻠﯿﺎت وﺟﻮد داﺷﺘﻪ اﺳﺖ‪ .‬ﻫﻢ ﭼﻨﯿﻦ در اﺑﺘﺪا داده ﺳﺎﺧﺘﺎر ﺧﺎﻟ ﺑﻮده اﺳﺖ‪.‬‬
‫‪ .۵‬ﺑﻪ ﮐﻤ‬
‫اﺳﺘﻘﺮا ﺛﺎﺑﺖ ﮐﻨﯿﺪ ﺑﻪ ازای ﻫﺮ ‪ ، n ≥ ١‬ﯾ‬
‫ﻋﺪد ‪ n‬رﻗﻤ از ارﻗﺎم ‪ ١‬و ‪ ٢‬وﺟﻮد دارد ﮐﻪ ﺑﺮ ‪ ٢n‬ﺑﺨﺶ ﭘﺬﯾﺮ‬
‫اﺳﺖ‪.‬‬
‫‪ .۶‬در ﻣﺴﺌﻠﻪ ﮐﺪ ﮔﺮی ﻫﺪف ﮐﻤﯿﻨﻪ ﮐﺮدن اﺧﺘﻼف ﺑﯿﻦ دو ﮐﺪ ﻣﺘﻮاﻟ ﺑﻮد‪ .‬در ﻣﺴﺌﻠﻪ ”ﺿﺪ‪-‬ﮔﺮی” ﻫﺪف ﺑﯿﺸﯿﻨﻪ ﮐﺮدن‬
‫اﺧﺘﻼف ﺑﯿﻦ ﺑﯿﺖ ﻫﺎی دو ﮐﺪ ﻣﺘﻮاﻟ اﺳﺖ‪ .‬آﯾﺎ ﻣ ﺗﻮان ﯾ‬
‫روش ﮐﺪ ﮔﺬاری ﺑﺮای ﺗﻌﺪاد زوﺟ ﺣﺎﻟﺖ ﻃﺮاﺣ ﮐﺪ ﮐﻪ‬
‫اﺧﺘﻼف ﺑﯿﻦ ﮐﺪﻫﺎی دو ﻋﻨﺼﺮ ﻣﺘﻮاﻟ ‪ k‬ﺷﻮد ﮐﻪ ‪ k‬ﺗﻌﺪاد ﺑﯿﺖ ﻫﺎی در ﻫﺮ ﮐﺪ اﺳﺖ؟ ﺑﺮای ‪ k − ٣ ،k − ٢ ،k − ١‬و‬
‫‪ . . .‬ﺑﯿﺖ اﺧﺘﻼف ﭼﻄﻮر؟ اﮔﺮ اﯾﻦ ﮐﺎر ﻣﻤ ﻦ اﺳﺖ‪ ،‬اﻟ ﻮرﯾﺘﻢ ﮐﺎرا ﺑﺮای آن اراﺋﻪ دﻫﯿﺪ‪.‬‬
‫‪ .٧‬ﻣﺎﺗﺮﯾﺴ از اﻋﺪاد داده ﺷﺪه اﺳﺖ‪ .‬ﻫﺮ ﯾ‬
‫ﻫﺮ ﯾ‬
‫‪ .٨‬در ﯾ‬
‫از ﺳﻄﺮ ﻫﺎی اﯾﻦ ﻣﺎﺗﺮﯾﺲ را ﺑﻪ ﺻﻮرت ﻣﺴﺘﻘﻞ از ﻫﻢ ﻣﺮﺗﺐ ﻣ ﮐﻨﯿﻢ‪ .‬ﺳﭙﺲ‬
‫از ﺳﺘﻮن ﻫﺎی آن را ﺑﻪ ﺻﻮرت ﻣﺴﺘﻘﻞ از ﻫﻢ ﻣﺮﺗﺐ ﻣ ﮐﻨﯿﻢ‪ .‬ﺛﺎﺑﺖ ﮐﻨﯿﺪ ﮐﻪ ﺳﻄﺮ ﻫﺎ ﻣﺮﺗﺐ ﺑﺎﻗ ﻣ ﻣﺎﻧﻨﺪ‪.‬‬
‫ﻣﺴﯿﺮ داﯾﺮه ای ‪ n‬اﺗﻮﻣﺒﯿﻞ وﺟﻮد دارﻧﺪ‪ .‬ﺗﻤﺎم آن ﻫﺎ ﺑﺎ ﻫﻢ ﻣﺠﻤﻮﻋﺎ ﺑﻪ اﻧﺪازه ای ﺳﻮﺧﺖ دارﻧﺪ ﮐﻪ ﯾ‬
‫ﺑﺘﻮاﻧﺪ ﺑﺎ آن ﯾ‬
‫ﻣﺴﯿﺮ را ﺑﻪ ﻃﻮر ﮐﺎﻣﻞ ﻃ ﮐﻨﺪ‪ .‬ﻧﺸﺎن دﻫﯿﺪ اﺗﻮﻣﺒﯿﻠ وﺟﻮد دارد ﮐﻪ ﻣ ﺗﻮاﻧﺪ ﺗﻤﺎم ﻣﺴﯿﺮ را ﯾ‬
‫اﺗﻮﻣﺒﯿﻞ‬
‫ﺑﺎر ﻃ‬
‫ﮐﻨﺪ در ﺻﻮرﺗ ﮐﻪ از اﺗﻮﻣﺒﯿﻞ ﻫﺎی دﯾ ﺮ ﺳﻮﺧﺖ ﺑ ﯿﺮد‪.‬‬
‫‪ .٩‬در ﻓﻀﺎ ‪ ٢n‬ﻧﻘﻄﻪ داده ﺷﺪه اﺳﺖ‪ .‬در ﻣﺠﻤﻮع ‪ n٢ + ١‬ﭘﺎره ﺧﻂ ﺑﯿﻦ آن ﻫﺎ رﺳﻢ ﺷﺪه اﺳﺖ‪ .‬ﻧﺸﺎن دﻫﯿﺪ‪ ،‬ﺣﺪاﻗﻞ ﯾ‬
‫ﻣﺠﻤﻮﻋﻪ از ﺳﻪ ﻧﻘﻄﻪ وﺟﻮد دارﻧﺪ ﮐﻪ دو ﺑﺪو ﺑﻪ وﺳﯿﻠﻪ ﭘﺎره ﺧﻄﻬﺎﯾ ﺑﻪ ﻫﻢ وﺻﻞ ﺷﺪه اﻧﺪ‪.‬‬
‫‪ .١٠‬ﺛﺎﺑﺖ ﮐﻨﯿﺪ ﻫﺮ ﻋﺪد ﻃﺒﯿﻌ ‪ N‬ﺑﻪ ﻃﻮر ﯾ ﺘﺎ ﺑﻪ ﺻﻮرت ﺟﻤ اﻋﺪاد ﻣﺘﻔﺎوﺗ از دﻧﺒﺎﻟﻪ ﻓﯿﺒﻮﻧﺎﭼ ﮐﻪ ﺷﺎﻣﻞ دو ﺟﻤﻠﻪ ﻣﺘﻮاﻟ‬
‫ﻧﯿﺴﺘﻨﺪ‪ ،‬ﻗﺎﺑﻞ ﻧﻤﺎﯾﺶ اﺳﺖ‪.‬‬
‫‪m‬‬
‫‪∑ Fi , |i j − i j−١ | ≥ ٢‬‬
‫‪j‬‬
‫=‪N‬‬
‫‪j =١‬‬
‫‪F١ = ١, F٢ = ٢, Fn+٢ = Fn+١ + Fn‬‬
‫ﻣﺜﺎل‪:‬‬
‫‪١٠ = F۵ + F٢ = ١٠٠١٠, ١١ = F۵ + F٣ = ١٠١٠٠, ١٢ = F۵ + F٣ + F١ = ١٠١٠١‬‬
‫‪٢‬‬