[ Farenhajt @ 26.07.2011. 06:13 ] @
Ako je dat trougao ABC, njegove stranice možemo obeležiti kao AB ili BA, AC ili CA, BC ili CB. Želimo sve njegove stranice da stavimo na spisak (tačno po jedanput), ali tako da, za svake dve susedne stavke na spisku, krajnja tačka prethodne stavke bude različita od početne tačke naredne stavke.

Ilustracija: Spisak AB-BC-AC nije dozvoljen jer se "B" u AB podudara sa "B" u BC. Isto važi i za BA-BC-CA. S druge strane, svi naredni spiskovi su dozvoljeni: AB-AC-BC, BC-AB-CA, CA-CB-AB itd.

Primedba: Spiskovi su linearni, a ne kružni, te stoga odnos između početne tačke prve stavke i krajnje tačke poslednje stavke nije bitan.

Pitanje: Koliko ima takvih spiskova za
i) trougao;
ii) n-tougao?
[ Bojan Basic @ 26.07.2011. 08:00 ] @
Ako nisam pogrešio u kodu, za trougao, četvorougao, itd. do sedmougla, traženih spiskova ima 30, 232, 2330, 27948, 391286, redom. Ovo pak jako liči na niz koji prebrojava izometrije -dimenzionalne hiperkocke koje su rastroji poretka njenih -dimenzionalnih hiperstrana: pogledaj ovaj rad, strana 7 — razlika je samo u naizmeničnom dodavanju i oduzimanju jedinice. Niz je zabeležen i u Slounovoj enciklopediji, ovde. Brojevi su previše veliki da bi bila slučajnost, a i ne deluje nelogično da se ovo tvoje pitanje zaista može svesti na izometrije hiperkocaka. Trenutno nemam vremena da razmišljam o dokazu (a moguće da je čak i trivijalan).
[ Nedeljko @ 26.07.2011. 10:02 ] @
Bojane, ovakav tvoj odgovor je nepotpun bez prilaganja izvornog koda programa.
[ Bojan Basic @ 26.07.2011. 17:36 ] @
Odgovor je svakako nepotpun (ne samo iz razloga koji si naveo), trebalo je samo da ukaže na jedan moguć pristup problemu, onoliko koliko sam na brzinu uočio a što deluje obećavajuće. No, prilaganje koda zaista bi učinilo moju opasku malo kompletnijom.

Do onih brojeva sam došao tako što sam u Mathematici najpre definisao sledeće pomoćne funkcije:
Code:
str[n_] := Append[Table[{i, i + 1}, {i, 1, n - 1}], {1, n}]
Code:
Inn[l1_, l2_] := If[l2[[#]] == 1, l1[[#]], Reverse[l1[[#]]]] & /@ Range[Length[l1]]
Code:
mogucn[n_] := Inn[str[n], #] & /@ Tuples[{1, 2}, n]
Code:
OK[niz_] := And @@ (niz[[#, 2]] != niz[[# + 1, 1]] & /@ Range[Length[niz] - 1])

Potom se rezultat dobija pokretanjem sledećeg koda:
Code:
For[n = 3, n <= 7, n++,
 Print[Length[Select[Flatten[Permutations[#] & /@ mogucn[n], 1], OK[#] &]]]
]
[ Farenhajt @ 27.07.2011. 00:46 ] @
Hvala