Permutacija linija

Permutacija linija

offline
  • Pridružio: 04 Sep 2003
  • Poruke: 24135
  • Gde živiš: Wien

Zadatak:
Imam tekstualni fajl sa par linija teksta. Potrebno mi je da napravim fajlove sa svim mogucim permutacijama linija tog teksta.

Recimo, original se sastoji od sledecih linija:
A
B
C

Prvi sledeci fajl bi recimo bio:
A
C
B

Sledeci:
C
A
B

Pa:
C
B
A

itd.

Ima li neko ideju kakav bi trebao da bude algoritam za permutovanje, tj. pravljenje svih mogucih kombinacija tih linija?

Dopuna: 24 Jul 2006 0:24

btw. i sledece kombinacije dolaze u obzir:

A
B

ili

A
C

Znaci, ne moraju svi elementi da budu prisutni.



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 18 Feb 2006
  • Poruke: 1135

mozda ti ovo pomogne
[Link mogu videti samo ulogovani korisnici]



offline
  • Pridružio: 04 Sep 2003
  • Poruke: 24135
  • Gde živiš: Wien

Ne bas puno jer je to u Javi... bacicu pogled u svakom slucaju, mozda dobijem neku ideju.

offline
  • prm 
  • Građanin
  • Pridružio: 11 Jun 2006
  • Poruke: 94

Stvar je sledeca

Program koji tebi treba je vec resen samo u dva dela

provo hoces da permutiras neki skup to nije problem mislim...
To moze rekurzivno nasao sam to u Vlasicu a ima i u Laslo Krausovoj zbirci.


Za ono da uzimas delove toga treba ti binarni brojni sistem


Uzimas brojeve od 00000 11111 i ako je nula neuzimas u stringa a ako jeste uzimas u string...
Ovo zadnje ima u isto tamo nekoj zbirci samo nemogu da se setim imena...

Mislim da sam ja nesto slicno i radio ali davno to bese

Da sada ti ostaje onaj dio sa citanjem iz TXT fajla ali ......


HH

Nemoj samo da koristis taj problem za razbijanje nekih sifri jer ti onda najverovatnije treba i odgovor te druge aplikacije a to nije nesto sto ja znam u ovome momentu

offline
  • Pridružio: 04 Sep 2003
  • Poruke: 24135
  • Gde živiš: Wien

Testiram detekciju BAT virusa i nasao sam takav BAT virus koji pri bilo kakvoj permutaciji linija bude prepoznat kao druga verzija virusa od strane AV programa.

Napravio sam rucno desetak "tumbanja" linija i dobio 10 razlicitih virusa. Kaspersky ih je detektovao kao Virus.BAT.Silly.m, Virus.BAT.Silly.bh itd itd.

BAT fajl je sastavljen od desetak zasebnih celina koje i svaka bude prepoznata pod nekim Virus.BAT.Silly imenom.
Celine su od po jednog do dva reda koda.

Hteo sam da napravim program koji ce da mi izbaci sve moguce kombinacije tih celina, pa da vidim sta kazu AV programi.

Cinjenicno stanje je da 70% rezultujucih fajlova bi bili neispravni, i kao takvi spadaju pod false alarme.
Hocu da utvrdim inteligenciju AV programa u utvrdjivanju ispravnosti BAT fajla, ili da eventualno dokazem da se vode samo time sto u nekom BAT fajlu postoji skup nekih komandi (nebitno da li rade, ili su mozda cak i u nekom slepom cosku programa koji nikada ne bude izvrsen) koje ce da izazovu detekciju infekcije koja to nije.

offline
  • prm 
  • Građanin
  • Pridružio: 11 Jun 2006
  • Poruke: 94

Inace ako hoces da vrsis samo permutacije mozes i rekurzivno ali uzmi niz i posle to sortiras u opadajucem redosledu ako sada hoces da dobijes sve permutacije od toga niza sortiraj ga uzastopnim zamenama ali u rastucem redosledu.....

Ako ti treba rekurzivna funkcija poslacu ti imam to a ako ti treba da jos pravis i podskupove pa njih da onda permutiras najbolje je uz pomoc onoga trika sa binarnim brojevima

a ako hoces da pravis i sa ponavljanjem koristi prosti fazon uzmi da ti niz ima 255 clanova ili napravi open niz pa onda njega kao sto sam to ranije u onom primeru sa sudokuom napomenuo

poenta je sledeca pravis 255 osnovu brojnog sistema i krenes od clana gde su sve nule i dodajes 1 ostalo je sablon

HH

Dopuna: 25 Jul 2006 20:29

Inace zaboravi sam ti napomenuti uzmi konzolnu aplikaciju pa to testiraj posle samo dodaj sta ti treba u DELFI

Dopuna: 26 Jul 2006 10:21

Program Anagram; CONST Max =7; TYPE Niz = ARRAY[1..max] of CHAR; VAR i, Duzina :Integer;       Rijec,NovaRijec : Niz;       Slobodno : ARRAY[1..max] of BOOLEAN; PrOCEDURE permutiraj(mjesto:integer; Rijec:NIZ); vAR j:integer; Procedure PisiRijec      WRITE (' ':10 -Duzina); for I := Duzina DOWNTO 1 DO       WRITE(NovaRijec[i]) end; begin   if mjesto = 0 then     PisiRijec   else begin       FOR j:= 1 to Duzina do begin             IF slobodno[j] then begin                Slobodno[j] := FALSE;                NovaRijec[mjesto]:=rijec[j];                Permutiraj(mjesto-1,Rijec);                 Slobodno[j] := TRUE end end end end Procedure CitajRijec; begin   WRITE('Rijec-->'); i := 0;    REPEAT         i++;         Slobodno[i]:= tRUE;         READ(rijec[j])    until (i = max) or eoln;    Duzina := i-1 end; Begin   CitajRijec; WRITELN;   Permutiraj(Duzina,rijec); Writeln end.

Ko je trenutno na forumu
 

Ukupno su 1116 korisnika na forumu :: 124 registrovanih, 12 sakrivenih i 980 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: 357magnum, 9191vs, acatomic, aleph_one, ALFASPORTIVO, amaterSRB, Andrija 1993, antonije64, Arsenije, Ba4e, babaroga, bato_banjaluka, Belac91, bojan313, Boris BM, Boris90, boro975, BORUTUS, BraneS, Chainsaw, cifra, Crazzer, crnirocko, d.arsenal321, dankisha, DeerHunter, Dejan_vw, dejanbenkovic, dejno, Deki Duga Devetka, Dioniss, Django777, Djota1, dulleo, Electron, FOX, Georgius, Gheljda, Hans Gajger, JankoS, Jeremiah, Joint Chief, Jovan1983, Kaplar2, kingkong1947, Kolimator, krkalon, Kubovac, kunktator, Lester Freamon, ljubo70, LostInSpaceandTime, Lucije Kvint, M74AB3, Maca64, Makeitdrip, marko.markovic, milenko crazy north, Milo97, Milos1389, milos97, minmatar34957, misa1xx, mrav pesadinac, Mskok, nazgul75, nelezele, nevjerna beba, nikonema, Nobunaga, novator, OgSa, Orc, ozzy, Pantelejmon, Pilence, Povratak1912, predragc, PrincipL, promajauglavi, Pururin, radovanstojkov023, raso76, Rothmans, rovac, sabros, samo opusteno, Sančo, Sirius, skvara, Smajser, smuk, stagezin, stalja, stalker22, Strasni JA, strn, styg, tanakadzo, Tas011, theNedjeljko, Tihi86, Titan, Token, Topaz9, Trivo, Tvrtko I, vasa.93, vathra, Veless, Velički, Vlad000, vladaa012, volimpivuvolimrakiju, VOŽD, vranjanac29, vuksa72, yrraf, YU-UKI, zmajbre, Zoca, Zrcalo, Žoržo, šumar bk2