Jump to content
php.lv forumi

Recommended Posts

Posted (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 by phpjanis
Posted (edited)

iipashi gliiti nebutu, bet var jau izlidzeties ar 12 limenu ciklu :)

for(a-z)
{
  for(a-z)
  {
   .....
  }
}

Edited by Blitz
Posted

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

Posted (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 by Aleksejs
Posted

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.

Posted

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.

Posted

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ā.

×
×
  • Create New...