dimanche 25 octobre 2009

Fournir les coordonnées du ieme élément d'une matrice de D dimensions de même taille contenant N éléments.



 


#include
#include
#include



using namespace std;




void calcCoords(int index, int taille_dim, int nb_dims, int i, int* coordonnees)
{
  coordonnees[i] = index % taille_dim;
  if(nb_dims!=0)
    calcCoords(index/taille_dim,taille_dim,nb_dims-1,i+1,coordonnees);       
}

void coords(int index, int taille_tot, int nb_dims, int* coordonnees)
{
  calcCoords(index,(int)pow(taille_tot,1.0/nb_dims),nb_dims,0,coordonnees); 
}


//Fournir les coordonnées du ieme élément d'une matrice de D dimensions de même taille contenant N éléments.

int main(int argc, char* argv[]){

  if(argc != 4)
    cout << "pas le bon nb d'args" << endl;
  else
    {
      int index_elem = atoi(argv[1]);
      int nb_elem = atoi(argv[2]);
      int nb_dims = atoi(argv[3]);

      int* coordonnees = new int[nb_dims];
      coords(index_elem, nb_elem, nb_dims,coordonnees);
     

      for(int i = 0; i < nb_dims; ++i)
    cout << "dimension " << i << " coord : " << coordonnees[i] << endl;
    }
  return 1;
};






   

Aucun commentaire:

Enregistrer un commentaire