Anda di halaman 1dari 6

1.

Algoritma penjumlahan polynomial

p[20], q[20], r[20], s[40] bertipe array

j,i,m,n bersifat integer

int main()
{
int p[20], q[20], r[20], s[40];
int j,i,m,n;

for (i = 0 ; i < 20 ; i++)


{ p[i] = 0;
q[i] = 0;
r[i] = 0;
}
for (i = 0 ; i < 40 ; i++)
s[i] = 0;

a. [masukkan pangkat dan suku dari polynomial pertama]

Write ("masukkan pangkat tertinggi dari polymonial 1: ")


Read n;
Write ( "masukkan konstanta polynomial dari suku pangkat terendah ");
Write (" Ketikkan angka 0 jika tidak ada konstanta pada suku tersebut");

b. [menghitung suku polynomial pertama]

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


{ Write ("Konstanta suku polinomial ke “)<< i+1 <<" ";
Read p[i];
}

c. [masukkan sebuah pangkat dan suku dari polynomial kedua]

Write (" Masukkan pangkat tertinggi dari polinomial 2: ");


Read m;
Write (" masukkan konstanta polinomial mulai dari suku pangkat terendah ");
Write (" Ketikkan angka 0 jika tidak ada konstanta pada suku tersebut");
d. [menghitung suku polynomial kedua]

for (i = 0 ; i < m ; i++)


{ Write ( " Konstanta suku polinomial ke )"<< i+1 <<" ";
Read q[i];
}

e. [menghitung dan mencetak hasil penjumlahan]

if (n > m)
{ for ( i = 0; i < n ; i++)
r[i] = p[i] + q[i];
Write (" Hasil penjumlahan dua polynomial = ")
Read tampil(r,n);
}
else
{ for ( i = 0; i < m ; i++)
r[i] = p[i] + q[i];
Write (“Hasil penjumlahan dua polynomial = “)
Read tampil(r,m);
}

f. Halt
2. Algoritma perkalian polynomial

p[20], q[20], r[20], s[40] bertipe array

j,i,m,n bertipe integer

int main()
{
int p[20], q[20], r[20], s[40];
int j,i,m,n;

for (i = 0 ; i < 20 ; i++)


{ p[i] = 0;
q[i] = 0;
r[i] = 0;
}
for (i = 0 ; i < 40 ; i++)
s[i] = 0;

a. [masukkan pangkat dan suku dari polynomial pertama]

Write ("masukkan pangkat tertinggi dari polinomial 1: ")


Read n;
Write ("masukkan konstanta polinomial mulai dari suku pangkat terendah ");
Write (" Ketikkan angka 0 jika tidak ada konstanta pada suku tersebut");

b. [menghitung suku polynomial pertama]


for (i = 0 ; i < n ; i++)
{ Write ("Konstanta untuk suku polinomial ke ")<< i+1 <<" ";
Read p[i];
}

c. [masukkan sebuah pangkat dan suku dari polynomial kedua]

Write (" Ketikkan pangkat tertinggi dari polinomial 2: ");


Read m;
Write (" Ketikkan konstanta polinomial mulai dari suku pangkat terendah ");
Write (" Ketikkan angka 0 jika tidak ada konstanta pada suku tersebut");
d. [menghitung suku polynomial kedua]

for (i = 0 ; i < m ; i++)


{ Write (" Konstanta untuk suku polinomial ke ")<< i+1 <<" ";
Read q[i];
}

e. [menghitung dan mencetak hasil perkalian]

for (i = 0; i < n ; i ++ )
{ for ( j = 0 ; j < m ; j++ )
{ s[i+j] = s[i+j] + p[i] * q[j];
}
}
cout<<endl;
Write (" Hasil perkalian dua polymonial = )"
Read (s, m+n-1);
}

f. halt

3. Divide and Conquer merupakan salah satu bentuk pendekatan dalam menyelesaikan suatu
permasalahan. Pendekatan divide and conquer bekerja dengan cara memecah permasalahan menjadi
submasalah yang sama seperti masalah awal. Setiap submasalah diselesaikan secara terpisah dengan cara
rekursif. Solusi dari setiap submasalah akan digabung menjadi solusi masalah utama Dengan
menggunakan pendekatan divide and conquer, permasalahan perkalian polinomial dapat disederhanakan
sehingga kompliksitas waktunya lebih sederhana dari perkalian biasa. umumnya algoritma yang berbasis
divide and conquer dikerjakan secara rekurisf sehingga diperlukan ruang tambahan untuk melakukan
penyimpanan stack pemanggilan fungsi.

Sedangkan perkalian polinomial biasa tidak seperti penjumlahan, untuk menghitung koefisien
sebuah suku pada hasil perkalian dua buah polinomial berderajat 𝑁 dibutuhkan untuk
menghitung hasil perkalian dari 𝑁 buah koefisien dari setiap polinomial.
4. fungsi kali(a[], b[], x, y)
fungsi untuk mengkalikan bilangan polinomial. Parameter a[], b[], x dan y bertipe integer.
Variabel multi dan i bertipe integer.
{ *multi = new int[x+y-1]
for(i = 0; i < x+y-1; i++)
multi[i] = 0

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


for (int j=0; j < y; j++)
prod[i+j] += a[i]*b[j];
}
return multi
}

void print(poly[], n)
fungsi untuk menampilkan bilangan polinomial. Parameter poly[] dan n bertipe integer.
variabel i bertipe integer.
{ for(i = 0; i < n; i++){
write(poly[i])
if(i != 0)
write(“x^”, i)
if(i != n-1)
write(“ + ”)
}
}

Algoritma utama
Algoritma untuk menampilkan bilangan polinomial yang sebelum dikali dan setelah dikali.
Dilakukan dengan fungsi kali(a[],b[],x,y) untuk kali bilangan polinomial dan void
print(poly[],n) untuk menampilkan bilangan polinomial. Variabel a[], b[], x, y dan multi
bertipe integer.
{ a[] = {3, 4, 10, 2, 9}
b[] = {5, 0, 8}
x = sizeof(a)/sizeof(a[0])
y = sizeof(b)/sizeof(b[0])

write(“bilangan polinomial pertama : ”)


print(a,x)
write(“bilangan polinomial kedua : ”)
print(b,y)
*multi = kali(a, b, x, y)
write(“hasil kali polinomial :”)
print(multi, m+n-1)
halt
}

5. Seed sangat penting pada metode RNG dan LCM marena seed menjadi dasar perhitungan bilangan
random itu dimulai. Jika kita menggunakan seed yang sama setiap waktu, itu akan menghasilkan urutan
angka acak yang sama.

Nilai yang paling cocok untuk menjadi seed adalah 1234567.

Anda mungkin juga menyukai