Informatică, întrebare adresată de 59alina, 8 ani în urmă

c++
Aparatele pentru perforarea tichetelor de călătorie în transportul public folosesc 9 puncte de perforare, dispuse în formă de matrice 3X3. Să se genereze toate modalitățile în care pot fi perforate biletele.

Răspunsuri la întrebare

Răspuns de andrei750238
6

Nota :

  • Este considerata valida si solutia in care niciunul din punctele de perforare nu este perforat
  • Am folosit un vector pentru generare (pentru ca este mai usor de generat un vector decat o matrice) apoi am afisat vectorul sub forma de matrice.
  • Avem 2^{9} solutii valide (fiecare pozitie are doua variante - fie este performata, fie nu ; avand 9 pozitii aplicam regula produsului)
  • Ai atat programul cat si solutia atasate in fisier.

Program C++:

#include <iostream>

using namespace std;

void afisare_solutie(bool v[]) {

int index;

for (index = 1; index <= 9; index++) {

 cout << v[index] << " ";

 if (index % 3 == 0)

  cout << endl;

}

cout << endl << endl;

}

void backtraking_modele_bilete(bool v_sol[], int index) {

if (index >= 10) {

 afisare_solutie(v_sol);

}

else {

 v_sol[index] = 0;

 backtraking_modele_bilete(v_sol, index + 1);

 v_sol[index] = 1;

 backtraking_modele_bilete(v_sol, index + 1);

}

}

int main() {

bool v_sol[10] = { 0 };

backtraking_modele_bilete(v_sol, 1);

}

Anexe:
Alte întrebări interesante