Êîñòèí Â.À.
Êîñòèí Âëàäèìèð Àíäðååâè÷
ÇÀÄÀ×À Î ÑÊËÀÄÛÂÀÍÈÈ ÌÀÐÎÊ Äàííàÿ ñòàòüÿ ïîñâÿùåíà ðàçáîðó îäíîé çàäà÷è, ïðåäëàã...
20 downloads
193 Views
290KB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
Êîñòèí Â.À.
Êîñòèí Âëàäèìèð Àíäðååâè÷
ÇÀÄÀ×À Î ÑÊËÀÄÛÂÀÍÈÈ ÌÀÐÎÊ Äàííàÿ ñòàòüÿ ïîñâÿùåíà ðàçáîðó îäíîé çàäà÷è, ïðåäëàãàâøåéñÿ íåñêîëüêî ëåò íàçàä íà ãîðîäñêîì òóðå îëèìïèàäû ïî èíôîðìàòèêå. Åå âîçíèêíîâåíèå ñâÿçàíî ñ îäíèì èç ñþæåòîâ ïîïóëÿðíîé ìàòåìàòèêè - ñêëàäûâàíèåì ïîëîñîê ìàðîê. Ýòà òåìà ðàññìîòðåíà, íàïðèìåð, â êíèãàõ Ìàðòèíà Ãàðäíåðà [1] è Ãåíðè Ý. Äüþäåíè [2].  êà÷åñòâå ÿçûêà ðåàëèçàöèè àëãîðèòìîâ âûáðàí ÿçûê Ïàñêàëü, íà êîòîðûé òàêæå îðèåíòèðîâàíà âñÿ òåðìèíîëîãèÿ, ñâÿçàííàÿ ñ ïðîãðàììèðîâàíèåì.
Ðàññìîòðèì âíà÷àëå çàäà÷ó î ñêëàäûâàíèè åäèíè÷íîé ïîëîñêè ìàðîê. Ïóñòü çàäàíà ïðÿìîóãîëüíàÿ ïîëîñêà áóìàãè ôîðìû 1*n, ðàçáèòàÿ íà n åäèíè÷íûõ êëåòîê (ìàðîê). Âñå êëåòêè ïîñëåäîâàòåëüíî ïðîíóìåðîâàíû íàòóðàëüíûìè ÷èñëàìè 1,...,n. Ïðåäïîëîæèì, ÷òî ïîëîñêà ñêëàäûâàåòñÿ (ñãèáàíèåì ïî ëèíèÿì ðàçáèâêè íà êëåòêè) òàêèì îáðàçîì, ÷òî âñå êëåòêè íàõîäÿòñÿ ïîä îäíîé åäèíñòâåííîé. Òîãäà êàæäîìó òàêîìó ñêëàäûâàíèþ ñîîòâåòñòâóåò íåêîòîðàÿ ïåðåñòàíîâêà f=, ãäå a1 - íîìåð êëåòêè, ðàñïîëîæåííîé ñâåðõó, a2 - íîìåð êëåòêè, ðàñïîëîæåííîé íåïîñðåäñòâåííî ïîä a1 è ò. ä. Îïðåäåëåíèå. Ïåðåñòàíîâêà íàçûâàåòñÿ ñêëàäûâàåìîé, åñëè åé ñîîòâåòñòâóåò íåêîòîðîå ñêëàäûâàíèå ïîëîñêè, è íåñêëàäûâàåìîé â ïðîòèâíîì ñëó÷àå.
94
Íàïðèìåð, ïåðåñòàíîâêà ñêëàäûâàåìàÿ, - íåñêëàäûâàåìàÿ.  êà÷åñòâå îïåðàöèè, çàäàííîé íà ìíîæåñòâå âñåõ ïåðåñòàíîâîê, ðàññìîòðèì áóëåâñêóþ ôóíêöèþ, èñòèííóþ äëÿ ñêëàäûâàåìûõ ïåðåñòàíîâîê è ëîæíóþ â ïðîòèâíîì ñëó÷àå. Äëÿ ïîñòðîåíèÿ àëãîðèòìà âû÷èñëåíèÿ ýòîé ëîãè÷åñêîé ôóíêöèè ðàçáåðåì âíà÷àëå àëãîðèòì âû÷èñëåíèÿ àíàëîãè÷íîé ôóíêöèè, ïðèíèìàþùåé èñòèííîå çíà÷åíèå òîëüêî â ñëó÷àå, êîãäà åäèíè÷íàÿ ïîëîñêà ñêëååíà â êîëüöî òàê, ÷òî ïîñëå n-é êëåòêè ñëåäóåò ïåðâàÿ. Íàïðèìåð, ïåðåñòàíîâêà ïåðåñòàåò áûòü ñêëàäûâàåìîé äëÿ çàìêíóòûõ åäèíè÷íûõ ïîëîñîê ÷åòâåðòîãî ïîðÿäêà, à ïåðåñòàíîâêà îñòàåòñÿ ñêëàäûâàåìîé è â ýòîì ñëó÷àå. Ðàññìîòðèì ñâîéñòâà ñêëàäûâàåìûõ ïåðåñòàíîâîê, ñîîòâåòñòâóþùèõ çàìêíóòûì åäèíè÷íûì ïîëîñêàì: 1.Ïîðÿäîê ñêëàäûâàåìûõ ïåðåñòàíîâîê, ñîîòâåòñòâóþùèõ çàìêíóòûì ïîëîñêàì, ÷åòåí. Äëÿ äîêàçàòåëüñòâà ýòîãî ñâîé- a1 a2 ñòâà ââåäåì íà ïîëîñêå îðèåíòàöèþ. a4 Ñòîðîíó íåa3 a5 êîòîðîé êëåòêè ïîëîñêè ñ ... íîìåðîì i, an 1≤i≤ n, áóäåì
© ÊÎÌÏÜÞÒÅÐÍÛÅ ÈÍÑÒÐÓÌÅÍÒÛ Â ÎÁÐÀÇÎÂÀÍÈÈ. ¹ 3-4, 1998 ã.
Çàäà÷à î ñêëàäûâàíèè ìàðîê íàçûâàòü íà÷àëüíîé (êîíå÷íîé), åñëè îíà ñìåæíà ñ êëåòêîé ñ ìåíüøèì (áîëüøèì) íîìåðîì. Äëÿ ïåðâîé (n-é) êëåòêè íà÷àëüíàÿ ñòîðîíà - ýòî òà, êîòîðàÿ ñìåæíà ñ n-é ((n-1)-é) êëåòêîé, à êîíå÷íàÿ - ñî âòîðîé (ïåðâîé). Îïðåäåëèì äëÿ íà÷àëüíûõ è êîíå÷íûõ ñòîðîí îðèåíòàöèþ. Ïóñòü çàìêíóòàÿ ïîëîñêà ïðåäñòàâëåíà â ñëîæåííîé ôîðìå. Âûáåðåì íàïðàâëåíèå â çàâèñèìîñòè îò ðàñïîëîæåíèÿ íà÷àëüíîé è êîíå÷íîé ñòîðîí êëåòêè ñ íîìåðîì 1 îòíîñèòåëüíî åå öåíòðà. Ïðè ýòîì áóäåì ñ÷èòàòü, ÷òî íà÷àëüíàÿ ñòîðîíà ïåðâîé êëåòêè íàõîäèòñÿ ñëåâà, à êîíå÷íàÿ - ñïðàâà. Òîãäà íà÷àëüíûì è êîíå÷íûì ñòîðîíàì äðóãèõ êëåòîê ïðèïèñûâàåòñÿ íàïðàâëåíèå â çàâèñèìîñòè îò òîãî, ðàñïîëîæåíû ëè îíè ñ òîé æå ñòîðîíû, ÷òî è íà÷àëüíàÿ èëè êîíå÷íàÿ ñòîðîíà ïåðâîé êëåòêè. Çàìåòèì, ÷òî â ýòîì ñëó÷àå íà÷àëüíûå (êîíå÷íûå) ñòîðîíû êëåòîê ñ íå÷åòíûì íîìåðîì ðàñïîëîæåíû ñëåâà (ñïðàâà), à êëåòîê ñ ÷åòíûìè - íàîáîðîò. Ïîýòîìó îòîæäåñòâëåíèå íà÷àëüíîé ñòîðîíû ïåðâîé êëåòêè ñ êîíå÷íîé ñòîðîíîé n-é êëåòêè äëÿ ñëîæåííîé ïîëîñêè âîçìîæíî òîëüêî ïðè ÷åòíîì n. Óïðàæíåíèå. Èñïîëüçóÿ ââåäåííîå ïîíÿòèå îðèåíòàöèè, äîêàæèòå, ÷òî ó ñêëàäûâàåìûõ ïåðåñòàíîâîê ÷åòíûå ýëåìåíòû íàõîäÿòñÿ ëèáî âñå íà ÷åòíûõ, ëèáî âñå íà íå÷åòíûõ ìåñòàõ. Ðàññìîòðèì ïàðû ñìåæíûõ êëåòîê ïîëîñêè, îáùàÿ ñòîðîíà êîòîðûõ ðàñïîëîæåíà ñïðàâà. Ñþäà îòíîñÿòñÿ ïàðû (1,2), (3,4),...,(n-1,n). Ïðè ýòîì êëåòêè ñ ìåíüøèì íîìåðîì ìîãóò êàê ïðåäøåñòâîâàòü, òàê è ñëåäîâàòü çà êëåòêàìè ñ áîëüøèì íîìåðîì, åñëè ðàññìàòðèâàòü ýëåÏåðåñòàíîâêà .. ìåíòû ñêëàäûâàå- ñêëàäûâàåìàÿ. Ó×ÅÁÍÀß ÌÀÑÒÅÐÑÊÀß
ìîé ïåðåñòàíîâêè îò åå íà÷àëà ê êîíöó. Ýòè ïàðû ñìåæíûõ êëåòîê îáðàçóþò íåêîòîðóþ ñòðóêòóðó âëîæåííîñòè äðóã â äðóãà. Íàïðèìåð, n=10, f= Åñòåñòâåííî, ÷òî âñåãäà ñóùåñòâóåò õîòÿ áû îäíà ïàðà, â êîòîðóþ íå âëîæåíû íèêàêèå äðóãèå.  ïðèâåäåííîì ïðèìåðå ýòî ïàðû (9,10) è (2,1). Çàìåòèì, ÷òî ýëåìåíòû òàêîé ïàðû â ïåðåñòàíîâêå ðàñïîëîæåíû íà äâóõ ñîñåäíèõ ìåñòàõ. Òàêèì îáðàçîì, ìîæíî ñôîðìóëèðîâàòü ñëåäóþùåå ñâîéñòâî. 2.Äëÿ ëþáîé ñêëàäûâàåìîé ïåðåñòàíîâêè ñóùåñòâóåò õîòÿ áû îäíî òàêîå i, 1≤i≤n, ÷òî íà i è i+1 ìåñòàõ ðàñïîëîæåíû íîìåðà äâóõ ïîñëåäîâàòåëüíûõ êëåòîê ïîëîñêè. Ýòè íîìåðà ïðèíàäëåæàò ìíîæåñòâó íåóïîðÿäî÷åííûõ ïàð {(1,2),(3,4),...,(n-1,n)}. Çàìå÷àíèå. Íàðÿäó ñ âûáîðîì ïàð ñìåæíûõ êëåòîê ïîëîñêè, îáùàÿ ñòîðîíà êîòîðûõ ðàñïîëîæåíà ñïðàâà, ìîæíî ðàññìîòðåòü ïàðû ñìåæíûõ êëåòîê, îáùàÿ ñòîðîíà êîòîðûõ ðàñïîëîæåíà ñëåâà.  ýòîì ñëó÷àå ïàðû îáðàçóþò ìíîæåñòâî {(2,3),...,(n,1)}, à ïðèâåäåííûé ïðèìåð âûãëÿäèò òàê: f=. 3.Ïåðåñòàíîâêà ÷åòíîãî ïîðÿäêà ñêëàäûâàåìà òîãäà è òîëüêî òîãäà, êîãäà è ñïðàâà è ñëåâà ñìåæíûå ïàðû åå ýëåìåíòîâ îáðàçóþò âëîæåííóþ ñòðóêòóðó. Ïðîâåðêà âëîæåííîñòè ñïðàâà (ñëåâà) ìîæåò áûòü îñóùåñòâëåíà ïîñëåäîâàòåëüíûì óäàëåíèåì ïàð (ñâîéñòâî 2). Íàïðèìåð, n=10, f=: Ïåðåñòàíîâêà -íåñêëàäûâàåìàÿ.
95
Êîñòèí Â.À. óäàëåíèå ñïðàâà < 7 2 1 8> < 7 8> < >
óäàëÿåìàÿ ïàðà (9,10) (4,3) (5,6) (2.1) (7,8)
óäàëåíèå ñëåâà < >
Óïðàæíåíèå. Ñêëàäûâàåìà ëè ïåðåñòàíîâêà ? 4.Ïóñòü f= - ñêëàäûâàåìàÿ ïåðåñòàíîâêà, òîãäà òàêæå ñêëàäûâàåìàÿ ïåðåñòàíîâêà , ãäå bi=(ai+m) mod n+1, i=1,...,n, m - ëþáîå öåëîå ÷èñëî, à mod îïåðàöèÿ íàõîæäåíèÿ îñòàòêà îò äåëåíèÿ öåëûõ ÷èñåë. Äàííîå ïðåîáðàçîâàíèå ôàêòè÷åñêè ñîîòâåòñòâóåò ïåðåíóìåðàöèè êëåòîê çàìêíóòîé ïîëîñêè, ïðè êîòîðîé çíà÷åíèå åäèíèöà ñîïîñòàâëÿåòñÿ êëåòêå ñ íîìåðîì m mod n +1. Çàìå÷àíèå. Äëÿ íå÷åòíûõ m ìåíÿåòñÿ îðèåíòàöèÿ ïîëîñêè, òî åñòü ëåâûå ñòîðîíû êëåòîê ñòàíîâÿòñÿ ïðàâûìè, à ïðàâûå - ëåâûìè. Íà îñíîâå ñâîéñòâ 3 è 4 ìîæíî ïîñòðîèòü àëãîðèòì âû÷èñëåíèÿ áóëåâñêîé ôóíêöèè, èñòèííîé äëÿ ñêëàäûâàåìûõ ïåðåñòàíîâîê çàìêíóòûõ ïîëîñîê è ëîæíîé â ïðîòèâíîì ñëó÷àå. const n=...; {ïîðÿäîê ïåðåñòàíîâîê} type permit =array [1..n] of 1..n; function sk (var f:permit):boolean; var i,a,b : integer; c:boolean; procedure skr; function pair(x,y:integer):boolean; var z:integer; begin if x>y then begin z:=x; x:=y; y:=z end; pair:=odd(y) or (y-x1) end; procedure step; begin c:=c and (i