Zadejte hledaný výraz...

Transpozicni sifra

Putos
verified
rating uzivatele
17. 4. 2011 21:29:36
Mam tu mensi problem, delam v PHP transpozicni sifru. V realu sifra spociva v tom, ze je ctverec s mrizkou a nektera pole jsou v mrizce vystrizena. Mrizka se prilozi na papir a do der se vpisuje postupne text ktery je potreba zasifrovat. V okamziku kdy se vycerpaj diry v mrizce, mrizka se otoci o 90° a zase se zapisou dalsi pismena do direk, takhle se pokracuje do pozice kdy je mrizka stejne, jako pri prvnim kroku, v tu chvili se mrizka prilozi na dalsi prazdne misto na papire a opakuje se zapisovani. Kdyz je vsechen text zapsan, do prostoru mezi pismeny se doplni dalsi nahodna pismena a tim je text zasifrovan.
Problem mam v tom otaceni, nevim jak inteligentne menit souradnice der v mrizce.Pocitam s mrizkou 5x5. Pokud mam prvni dirku na pozici 0, potrebuju z ni v dalsich krocich udelat 0->5->25->20, to same napriklad s dirou na pozici 7->13->17->11. Zajimalo by me jestli by na to sel udelat nejaky obecny vzorec.
Pripadne jestli by se to dalo resit uplne jinak nez prez cisleny souradnice der. Mrizku mam v poli napriklad
$mrizka=array(
'0', '1', '1', '1', '1',s
'1', '1', '0', '1', '1',
'1', '1', '1', '1', '0',
'1', '0', '1', '1', '1',
'1', '0', '1', '1', '1'
);
(nuly znamenaji diru)
Z pole pak nacitam pozice der a prez ty pak zapisuju do vysledneho pole. Puvodni myslenka byla, ze se mrizka bude moci libovolne menit, ale pokud nedokazu udelat nejake obecne reseni, tak to tasi asi nepujde.
V PHP jsem spise zacatecnik. Poprosil bych tedy o nejakou radu, dekuji.
17. 4. 2011 21:29:36
https://webtrh.cz/diskuse/transpozicni-sifra#reply629208
MAHI
verified
rating uzivatele
(15 hodnocení)
17. 4. 2011 22:16:12
Ahoj,
To otočení je jednoduchý algoritmus, ve kterém jsou dva cykly z sobě (složitost n×n) - například tady: http://stackoverflow.com/questions/42519/how-do-you-rotate-a-two-dimensional-array
A asi to někde bude i v PHP, v funkci nějaké matematické knihovny.
Vždy zjistíš, jestli je na dané pozici nula nebo jednička a (ne)zapisuješ.
Pak otočíš a jedeš znovu. Vlastně to celé - ta šifra - nebudou dva cykly v sobě, ale spíše tři a když nad tím přemýšlím, tak asi možná čtyři. :-)
17. 4. 2011 22:16:12
https://webtrh.cz/diskuse/transpozicni-sifra#reply629207
Putos
verified
rating uzivatele
18. 4. 2011 19:37:50
Diky moc za odpoved. Studoval tu stranku a vubec nic mi to nereklo :(. Byla mi dana rada, ze mam pole udelat dvourozmerne se souradnicemi X a Y, pote vpodstate otocit tak, ze horni levy roh bude v pravo dole a potom este jednou, dolno pravy ron na horni pravy roh. Snazil jsem se jit touhle cestou a zase jsem se zasekl na zmene souradnic. Nebyl by nejaky manual k tomu Ccku, nebo neco? Diky.
18. 4. 2011 19:37:50
https://webtrh.cz/diskuse/transpozicni-sifra#reply629206
tomik1313
verified
rating uzivatele
(2 hodnocení)
19. 4. 2011 10:03:19
Neviem, ci som dobre pochopil, ale asi hladate toto:
alebo skus pozriet link nizsie, tam je riesena transpozicia 2 ale aj vo vseobecnosti N-rozmerneho pola
http://stackoverflow.com/questions/797251/transposing-multidimensional-arrays-in-php
19. 4. 2011 10:03:19
https://webtrh.cz/diskuse/transpozicni-sifra#reply629205
Pro odpověď se přihlašte.
Přihlásit