Şimdi Ara

C de polinom çarpım

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
4
Cevap
0
Favori
2.806
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • C de A=(x^5+x^4+x^2+4) B=(x^6+x^4+x^2+6) A*B= nasıl bulurum?



  • çarpımları parantez içlerine dağıtarak yap.biraz uzun olur ama.aklıma ilk gelen bu. akşam bakarım
  • önce bir polinomdaki terimleri bulan bir fonksiyon yaz, daha sonra her bir polinomu bir array gibi düşün, ve array'ın elemanları olarak ilgili polinomun terimlerini yerleştir. Daha sonra yapacağın şey iki array'ın (dizi) elemanlarını birbiriyle çarpıp toplamak olacak.

    Düz mantık yani
  • bak simdi,

    A=a[0]*x^0+a[1]*x^1 ....+a[max]*x^max olarak bir polinomun var diyelim, burada ihtiyacin olan katsayilar onlar da a[] olsun..

    ornek:
    for(i=0;i<birinci_kuvet;i++)
    scanf("%d",&a [ i ] ); // forum burada [ i ] karakterlerini italic olarak algiliyor, o yuzden ayri yazdim

    burada birinci_kuvet senin kullandigim max kuvet olsun.

    B yine ayni sekilde B=b[0]*x^0+b[1]*x^1+... olsun, yine b[]'ye ihtiyacin var.

    for(i=0;i<ikinci_kuvet;i++)
    scanf("%d",&b [ i ] );

    a[] ve b[]'yi kullanicidan aldiktan sonra, A*B=C=c[0]*x^0+c[1]*x^1+... hesaplayacagiz..


    bunu hesaplamak icin de soyle bir koda ihtiyacin var... ben denedim calisiyor..

    for(i=0;i<birinci_kuvet;i++) {
    for(j=0;j<ikinci_kuvet;j++) {
    c[ i+j]=c[i+j]+a[ i ]*b[j];
    }
    }


    bu kodun mantigi soyle: (A*a^m)*(B*a^n) dedigimizde (A*B)*a^(m+n) oluyor ya, yani katsiyalari carpiyoruz, ama ustleri topluyoruz.

    yalniz bu kodu denemeden once, c[]'nun butun elemanlarini 0 yapmalisin... c[]={0} gibi..



    < Bu mesaj bu kişi tarafından değiştirildi Ali_7 -- 8 Kasım 2006; 20:35:52 >




  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.