jules

Hozzászólások

10 bejegyzés megtekintése - 111-120 / 269
  • Szerző
    Bejegyzés
  • Hozzászólás: matrix osztaly osszeadasra #2154790
    jules
    Felhasználó

      Bocs, a kiiratas vilagos:

      Code:
          sum /= 5;   
         
          cout << sum << endl;
      Hozzászólás: matrix osztaly osszeadasra #2154787
      jules
      Felhasználó

        Hat csak annyi, hogy pl. az altalad fentebb irt 3.modszerben a ” cout << objektum; " most akkor mi legyen? "cout << objektum /=;" ? Csak meg ez nem vilagos.

        A random fuggvenyeket ertem, csak gondoltam, hogy a modszer valamiert nem biztos, hogy teljesen idealis… Valahogy ugy tunik, hogy a memoriaban a vektoroknak, meg a matrixoknak lefoglalt helyekrol minden „$: g++ valami.cpp -o valami” forditast koveto „./valami” futtatas utan ugyanazok az ertekek adodnak.
        Bocs kicsit nyakatekerten irok; lenyeg h minden futtatas utan mas random szamok generalodnak es igy a matrixoknak is masoknak kellene lenniuk…

        Hozzászólás: matrix osztaly osszeadasra #2154788
        jules
        Felhasználó

          Hat csak annyi, hogy pl. az altalad fentebb irt 3.modszerben a ” cout << objektum; " most akkor mi legyen? "cout << objektum /=;" ? Csak meg ez nem vilagos.

          A random fuggvenyeket ertem, csak gondoltam, hogy a modszer valamiert nem biztos, hogy teljesen idealis… Valahogy ugy tunik, hogy a memoriaban a vektoroknak, meg a matrixoknak lefoglalt helyekrol minden „$: g++ valami.cpp -o valami” forditast koveto „./valami” futtatas utan ugyanazok az ertekek adodnak.
          Bocs kicsit nyakatekerten irok; lenyeg h minden futtatas utan mas random szamok generalodnak es igy a matrixoknak is masoknak kellene lenniuk…

          Hozzászólás: matrix osztaly osszeadasra #2154783
          jules
          Felhasználó
            Code:
            m /= egy_szam  // ez ekvivalens ezzel m = m / egy_szam

            De hat ezt kellene kiiratni a sum helyett…

            PS: egyebkent, miert van az, hogy ha legeneralok egy ilyen objektumot/matrixot, akkor minden forditas utan ugyanazt a matrixot kapom? Nem kellene minden forditas/generalas utan mas matrixot kapnom?

            Hozzászólás: matrix osztaly osszeadasra #2154784
            jules
            Felhasználó
              Code:
              m /= egy_szam  // ez ekvivalens ezzel m = m / egy_szam

              De hat ezt kellene kiiratni a sum helyett…

              PS: egyebkent, miert van az, hogy ha legeneralok egy ilyen objektumot/matrixot, akkor minden forditas utan ugyanazt a matrixot kapom? Nem kellene minden forditas/generalas utan mas matrixot kapnom?

              Hozzászólás: matrix osztaly osszeadasra #2154779
              jules
              Felhasználó

                Ok, de akkor hogyan tudnam kiiratni az atlagot? Ugye „sum”-ban van, a matrixok osszege. De ezt nekem meg el kellene osztani a matrixok szamaval es ezt kellene kiiratnom…

                Hozzászólás: matrix osztaly osszeadasra #2154780
                jules
                Felhasználó

                  Ok, de akkor hogyan tudnam kiiratni az atlagot? Ugye „sum”-ban van, a matrixok osszege. De ezt nekem meg el kellene osztani a matrixok szamaval es ezt kellene kiiratnom…

                  Hozzászólás: matrix osztaly osszeadasra #2154775
                  jules
                  Felhasználó

                    Ez így miért nem jo?

                    Code:
                    #include  
                    #include
                    #include
                    #include
                    #include

                    #define N 5

                    using namespace std;

                    const float M_2PIf = 6.283185307179586476925286766559f;
                    const float M_PIf  = 3.141592653589793238462643383279f;

                    /* —————–RANDOM_GENERATOR——————————- */

                    float rand(float min, float max)
                    {
                        return min + (max – min) * rand() / (float)RAND_MAX;
                    }
                    /*——————————————————————*/

                    struct vektor {
                    float x,y,z;
                    };

                    /* ——————MATRIX_CLASS———————————–*/
                    class Matrix {

                    private:

                    float tomb[3][3];

                    public:
                     
                      void init(vektor &a){

                        tomb[0][0] = a.x * a.x;
                        tomb[0][1] = a.x * a.y;
                        tomb[0][2] = a.x * a.z;
                        tomb[1][0] = a.y * a.x;
                        tomb[1][1] = a.y * a.y;
                        tomb[1][2] = a.y * a.z;
                        tomb[2][0] = a.z * a.x;
                        tomb[2][1] = a.z * a.y;
                        tomb[2][2] = a.z * a.z;
                      }

                    Matrix &operator +=(Matrix b){
                    int k,l;
                    for(k=0; k<3; k++)
                    for(l=0; l<3; l++)
                      tomb[k][l] += b.tomb[k][l];
                    return *this;
                    }

                    Matrix &operator/=(float c){
                    int k,l;
                    for(k=0; k<3; k++)
                    for(l=0; l<3; l++)
                      tomb[k][l] /= c;
                    return *this;
                    }

                    Matrix &operator /=(int unused);

                    };

                    Matrix & Matrix::operator /=(int unused){
                      int i,j;
                      for( i=0; i<3; i++){
                        for(j=0; j<3; j++)
                    std::cout << tomb[i][j] << " ";
                        std::cout << std::endl;
                      }
                      return *this;
                    }

                    /* ——————————————————————– */

                    int main(void) {

                        int i,j;

                        vektor tar[5];

                        for (i = 0;i<5;i++) {

                        float phi  = rand(0.0f, M_2PIf);
                        float costheta = rand(-1.0f, 1.0f);
                       
                        float x = 1.0f * sqrtf(1-costheta*costheta) * cosf(phi);
                        float y = 1.0f * sqrtf(1-costheta*costheta) * sinf(phi);
                        float z = 1.0f * costheta;

                        tar[i].x = x;
                        tar[i].y = y;
                        tar[i].z = z;

                        }

                        Matrix m[5];
                        for (i=0;i<5;i++) {
                     
                        m[i].init(tar[i]);
                        }

                       
                        Matrix sum = m[0];

                        for (i=0;i<5;i++) {
                     
                        sum += m[i];
                        }

                        Matrix sum /= 5;

                        sum/=;

                    return 0;
                    }

                    Hozzászólás: matrix osztaly osszeadasra #2154776
                    jules
                    Felhasználó

                      Ez így miért nem jo?

                      Code:
                      #include  
                      #include
                      #include
                      #include
                      #include

                      #define N 5

                      using namespace std;

                      const float M_2PIf = 6.283185307179586476925286766559f;
                      const float M_PIf  = 3.141592653589793238462643383279f;

                      /* —————–RANDOM_GENERATOR——————————- */

                      float rand(float min, float max)
                      {
                          return min + (max – min) * rand() / (float)RAND_MAX;
                      }
                      /*——————————————————————*/

                      struct vektor {
                      float x,y,z;
                      };

                      /* ——————MATRIX_CLASS———————————–*/
                      class Matrix {

                      private:

                      float tomb[3][3];

                      public:
                       
                        void init(vektor &a){

                          tomb[0][0] = a.x * a.x;
                          tomb[0][1] = a.x * a.y;
                          tomb[0][2] = a.x * a.z;
                          tomb[1][0] = a.y * a.x;
                          tomb[1][1] = a.y * a.y;
                          tomb[1][2] = a.y * a.z;
                          tomb[2][0] = a.z * a.x;
                          tomb[2][1] = a.z * a.y;
                          tomb[2][2] = a.z * a.z;
                        }

                      Matrix &operator +=(Matrix b){
                      int k,l;
                      for(k=0; k<3; k++)
                      for(l=0; l<3; l++)
                        tomb[k][l] += b.tomb[k][l];
                      return *this;
                      }

                      Matrix &operator/=(float c){
                      int k,l;
                      for(k=0; k<3; k++)
                      for(l=0; l<3; l++)
                        tomb[k][l] /= c;
                      return *this;
                      }

                      Matrix &operator /=(int unused);

                      };

                      Matrix & Matrix::operator /=(int unused){
                        int i,j;
                        for( i=0; i<3; i++){
                          for(j=0; j<3; j++)
                      std::cout << tomb[i][j] << " ";
                          std::cout << std::endl;
                        }
                        return *this;
                      }

                      /* ——————————————————————– */

                      int main(void) {

                          int i,j;

                          vektor tar[5];

                          for (i = 0;i<5;i++) {

                          float phi  = rand(0.0f, M_2PIf);
                          float costheta = rand(-1.0f, 1.0f);
                         
                          float x = 1.0f * sqrtf(1-costheta*costheta) * cosf(phi);
                          float y = 1.0f * sqrtf(1-costheta*costheta) * sinf(phi);
                          float z = 1.0f * costheta;

                          tar[i].x = x;
                          tar[i].y = y;
                          tar[i].z = z;

                          }

                          Matrix m[5];
                          for (i=0;i<5;i++) {
                       
                          m[i].init(tar[i]);
                          }

                         
                          Matrix sum = m[0];

                          for (i=0;i<5;i++) {
                       
                          sum += m[i];
                          }

                          Matrix sum /= 5;

                          sum/=;

                      return 0;
                      }

                      Hozzászólás: matrix osztaly osszeadasra #2154769
                      jules
                      Felhasználó

                        Nagyon koszi.

                        Meg valami:
                        Amit most kiir nekem az a „sum”, azaz a matrixok osszege?
                        Es ennek az atlagat hogyan irathatom ki? Azaz, a pl. ” sum /=5; „-ot.

                      10 bejegyzés megtekintése - 111-120 / 269