folder Tahribat.com Forumları
linefolder C - C++
linefolder C++ - Matrisleri Tek Boyutlu Diziyle Çarpma(Yardım)



C++ - Matrisleri Tek Boyutlu Diziyle Çarpma(Yardım)

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    afer
    afer's avatar
    Kayıt Tarihi: 03/Nisan/2012
    Erkek

    Merhaba müritler, şimdi elimde iki tane tek boyutlu dizi var fakat bunları matrismiş gibi pointer kullanarak çarpmam lazım. Sabahtan beri düşünüyorum bir türlü bulamadım.

    Örnek:

     

    a1(3x4'lük bir matrisi temsilen) = [2, 3, 4, 5, 1, 3, 5, 4, 0, 4, 4, 7]

     

    a2(4x5'lik bir matrisi temsilen) = [1, 2, 3, 4, 5, 2, 9, 43, 44, 21, 32, 32, 32, 43, 54, 1, 3, 3, 4, 5]

     


    Çömezlikten çıkacağı günü bekliyor...
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SinusX
    SinusX's avatar
    Kayıt Tarihi: 14/Aralık/2010
    Erkek

    Normal matris çarpımını biliyor musun ? 

    2 boyutlu mxn lik matriside  x*m+n olarak yazabilirsin x satır sayın 


    Si vis pacem para bellum.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    NmC
    NmC's avatar
    Kayıt Tarihi: 23/Kasım/2008
    Erkek

    Hocam mod almayı biliyosan yapman lazım :)

     

     

    There are 10 types of people in the world. Those who knows binary and those who dont...
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    afer
    afer's avatar
    Kayıt Tarihi: 03/Nisan/2012
    Erkek

    @SinusX

    evet matris çarpımını biliyorum fakat, yazdığınla ne yapmam gerektiğini çıkartamadım

     

    @NmC

    evet hocam evet, mod almayı da biliyorum, fakat ben çözüm önerisi bekliyodum sizden


    Çömezlikten çıkacağı günü bekliyor...
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SinusX
    SinusX's avatar
    Kayıt Tarihi: 14/Aralık/2010
    Erkek

    afer bunu yazdı:
    -----------------------------

    @SinusX

    evet matris çarpımını biliyorum fakat, yazdığınla ne yapmam gerektiğini çıkartamadım

     

    @NmC

    evet hocam evet, mod almayı da biliyorum, fakat ben çözüm önerisi bekliyodum sizden


    -----------------------------

    çözüm önerdim zaten :) 

     2 matrisin olduğunu düşün 3x1 1x2 olarak sonucu 3x2 lik matris olacak 

    a [1,2,3]

    b [1,2] olsun 

    sonucun [1,2,3,2,4,6] olacak 

    mxi ile ixn çarparsan mxn lik matrisin oluşacak 

    tek boyuta indirdiğinde nasıl yaparsın genelleyelim 

     

    mxn lik matrisinde x satır sayınsa amn =m.x+n diye formule ederiz 

    mesela 3x3 lük matriste a12 2. eleman  3.0+2 = 2 gibi 

     

    Amxn lik bir matrisle Bixj lik iki matrisi çarpalım n=i olmalı sonucta Cmxj olsun 

    C11 = A11*B11 + A12*B21 + A13*B31 + ... + A1m*Bi1

    C12 = A21*B12 + A22*B22 + A23*B32 + ... + A2m*Bi2

    .

    .

    .

    Cmj = Am1*B1j + Am2*B2j + Am3*B3j + ... + Amn*Bij

     

    sen burda iki boyutluya göre çarptın ama sana tek boyut lazım o zaman ne yapman gerekiyor Amn ve Bij lerini tek boyut gibi yazman gerekiyor

    Amn = m*x+n x=0,1,2...

    Bij = i*y+j y=0,1,2...

    olarak yazdın mı sorun hallolur 


    Si vis pacem para bellum.
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ataturkcu1
    ataturkcu1's avatar
    Kayıt Tarihi: 20/Nisan/2007
    Erkek

    Hocam pointer tarafini bilemem ama ben sana m x n ve n x r seklinde verilmis iki matrisi carpan programi vereyim :

     

    #include <iostream>

    using namespace std;

    int main(){

    cout<<"Lutfen ilk matrisinizin boyutlarini giriniz"<<endl;

    int m,n;

    cin>>m;

    cin>>n;

    cout<<"Lutfen ikinci matrisinizin boyutlarini giriniz"<<endl;

    int r;

    cin>>n;

    cin>>r;

    cout<<"Lutfen ilk matrisinizin verilerini giriniz"<<endl;

    int first_matrix[m][n];

    int second_matrix[n][r];

    int input;

    for(int row = 0 ; row < m ; row++){

    for (int col = 0 ; col < n ; col++){

    cin>>input;

    first_matrix[row][col] = input;

    }

    }

    cout<<"Lutfen ikinci matrisinizin verilerini giriniz"<<endl;

    for (int row = 0 ; row < n ;row++){

    for (int col = 0 ; col < r ; col++){

    cin>>input;

    second_matrix[row][col] = input;

    }

    }

    int sonuc_matrix[m][r];

    cout<<"sonuc matrisiniz su sekildedir : "<<endl;

    for(int row = 0 ; row < m ; row++){

    for (int col = 0 ; col < r ; col++){

    sonuc_matrix[row][col] = 0;

    for (int i = 0 ; i < n ; i++){

    sonuc_matrix[row][col] = sonuc_matrix[row][col] + first_matrix[row][i] * second_matrix[i][col];

    }

    }

    }

    for(int row  = 0 ; row < m ; row++){

    for (int col = 0 ; col < r ; col++){

    cout<<" "<<sonuc_matrix[row][col];

    }

    cout<<endl;

    }

    }


    Pragmatism&Realism
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    DrKill
    DrKill's avatar
    Kayıt Tarihi: 10/Mart/2004
    Erkek

    pointer ın pointer ını kullanarak tamamiyle dinamik 2 boyutlu matris yapsana.

    Daha önce bir arkadaşımız pointer'ın pointer'ı hakkında bir soru sormuştu. Onunla ilgili cevap vermiştim kod olarak. İncelersen kullanımını anlarsın.

    http://www.tahribat.com/Forum-C-Ile-Degisik-Bir-Matris-Soru-144891/1/#1698899

     

    Zaten verdiğim örnekte 3 boyutlu dinamik matris örneği olduğu için kavrayabilecegini dusunuyorum. Anlaman 5 ila 30 dk ını alır.


    Bu imzayı her gördüğünüzde 4gb kotanızın 0,00000358559191226959228515625 azalmaktadır. Bilerek ve istenerek bu imza yapılmıştır. Amaç kotanızı sömürmektir
Toplam Hit: 2320 Toplam Mesaj: 7