werd Posted December 2, 2007 Report Share Posted December 2, 2007 (edited) ieks vb.net veidoju aplikaciju, kurai jaizvada visi iespejamie burtu varianti, piemeram, ievadam a;b un c un mums izdruka abc acb bac bca .... ... negribas visus variantus atseviski rakstit jo bus ari kad simboli ir 12 un tad varianti-uhhh!! ir varianti ka to vienkarsi taisit????? Edited December 2, 2007 by phpjanis Link to comment Share on other sites More sharing options...
bubu Posted December 2, 2007 Report Share Posted December 2, 2007 Tas, ko tev vajag, saucās permutāciju ģenerēšana. http://www.cut-the-knot.org/do_you_know/AllPerm.shtml http://snippets.dzone.com/posts/show/3545 Link to comment Share on other sites More sharing options...
Blitz Posted December 3, 2007 Report Share Posted December 3, 2007 (edited) iipashi gliiti nebutu, bet var jau izlidzeties ar 12 limenu ciklu :) for(a-z) { for(a-z) { ..... } } Edited December 3, 2007 by Blitz Link to comment Share on other sites More sharing options...
Delfins Posted December 3, 2007 Report Share Posted December 3, 2007 Nu šādas lietas parasti meklē google.. ir ļoti daudz piemēri, atliek vien ierakstīt pareizo terminu, vārdu "algorithm" un ja baig vajag tad arī valodu :) Principā visi šie algoritmi ir +/- publiski N-tos veidos/valodās Link to comment Share on other sites More sharing options...
ViszinisA Posted December 4, 2007 Report Share Posted December 4, 2007 vnk rekursiiva funkcija :) taada kaa bubu otrajaa linkaa Link to comment Share on other sites More sharing options...
Aleksejs Posted December 4, 2007 Report Share Posted December 4, 2007 (edited) Nu... Ar rekursīvu funkciju... Daudzi programmētāji aizmirst vienu lietu: rekursīvas funkcijas gadījumā (ja kompilators/interpretators nespēj patstāvīgi kaut ko darīt lietas labā) atmiņā vienlaicīgi ir jāpatur visi iterāciju rezultāti, kas 12 elementu gadījumā būtu.... 12!*12 baiti (pēdējais divpadsmit tādēļ, ka divpadsmitsimbolu virkne)= 5748019200 Baitu = ~5,35GB ! ;) Edited December 4, 2007 by Aleksejs Link to comment Share on other sites More sharing options...
bubu Posted December 4, 2007 Report Share Posted December 4, 2007 Tik traki jau nu nav. Rekursija ies tikai 12 dziļumā, katrā līmenī paturot stekā tekošo elementu (12 baitus) + vēl nelielu papildinfo. Tā ka atmiņa tur tiks patērēta diezgan maz (12*12). Rekursijas dziļums jau nav 12!, bet gan tikai 12. Link to comment Share on other sites More sharing options...
andrisp Posted December 4, 2007 Report Share Posted December 4, 2007 Ko nozīmē 12! ? (ar uzsvaru uz izsaukuma zīmi). Link to comment Share on other sites More sharing options...
Aleksejs Posted December 4, 2007 Report Share Posted December 4, 2007 Ā, nu ok :) Bet vispārīgi runājot - ar rekursiju jāuzmanās. Ļoti skaists un īss kods var pietaisīt pilnu atmiņu :D Link to comment Share on other sites More sharing options...
Aleksejs Posted December 4, 2007 Report Share Posted December 4, 2007 12! = 12 faktoriāls = 1*2*3*4*5*6*7*8*9*10*11*12 Link to comment Share on other sites More sharing options...
werd Posted December 4, 2007 Author Report Share Posted December 4, 2007 Rekursijas dzilums noteikti nebus 12!*12 Jo katra limeni jau tiks paturets noteikts skaits elementu kuru skaits nebus tik liels lai aiznemetu nenormali daudz vietas. Link to comment Share on other sites More sharing options...
bubu Posted December 4, 2007 Report Share Posted December 4, 2007 Neviens arī neapgalboja, ka rekursijas dziļums būs 12!*12. Aleksejs teica to par aizņemtās atmiņas daudzumu. Katrā ziņā, tādu algoritmu kā vajag autoram, var itin viegli uzrakstīt nerekursīvu. Pirmajā manis dotajā linkā ir uzrakstīts kā. Link to comment Share on other sites More sharing options...
Recommended Posts