Algoritma - Numerik

Algoritma numerik merupakan algoritma dengan pemecahan masalah pada matematika menggunakan metode numeric secara kontinu dengan memformulasi kan masalah matematis sehingga bisa dipecahkan dengan menggunakan operasi perhitungan.

Pada algoritma ini, perhitungan yang diberikan satu atau lebih nilai numeric sedangkan untuk keperluan mengukur kerumitan, ukuran angka adalah jumlah bit (atau angka) dalam angka, bukan nilai angka-angka itu sendiri!

Operasi numerik pada umumnya menjelaskan algoritma dalam melakukan operasi tertentu pada urutan nilai numerik. Dalam C ++, ini mencakup fungsi dan jenis matematika yang umum, serta susunan angka yang dioptimalkan dan dukungan untuk pembangkitan bilangan acak.

Pada data struktur algoritma berisi sejumlah algoritma yang mengubah bilangan basis 10 menjadi bentuk biner, oktal, atau heksadesimalnya. Misalnya 7810 memiliki representasi biner 10011102. Tabel dibawah menunjukkan jejak algoritma saat angka dikonversi menjadi biner, 74210.

n list
742 {0}
371 {0,1}
185 {0,1,1}
92 {0,1,1,0}
46 {0,1,1,0,1}
23 {0,1,1,0,1,1}
11 {0,1,1,0,1,1,1}
5 (0,1,1,0,1,1,1,1}
2 {0,1,1,0,1,1,1,1,0}
1 {0,1,1,0,1,1,1,1,0,1}

Untuk algoritma penambahan yang sudah Anda ketahui bekerja dalam basis apa pun ≥2, karena penjumlahan dari tiga digit paling banyak adalah angka dua digit (dalam basis apa pun!).

Contohya adalah:

Di basis 2, 1 + 1 + 1 = 11
Di basis 8, 7 + 7 + 7 = 25
Di basis 10, 9 + 9 + 9 = 27
Di basis 16, F + F + F = 2D

Algoritme berjalan dari kanan ke kiri, propagasi membawa. Dalam biner:

 101011010
 100010111
----------
1001110001

Pada decimal:

 939972
 654108
--------
1594080

complexity algoritma ini adalah Θ(n). Kita tidak bisa melakukan lebih baik karena harus menyentuh setiap bit. Sedangkan pada pengurangan serupa; Anda dapat melakukannya dalam waktu linier.

Mencapai penyebut umum terbesar dari dua angka. Masalah yang cukup rutin dalam matematika adalah menemukan denominasi umum terbesar dari dua bilangan bulat, yang pada intinya kita anggap paling besar adalah yang merupakan kelipatan dari keduanya, mis. denominator umum terbesar dari 9, dan 15 adalah 3. Salah satu solusi paling elegan untuk masalah ini adalah berdasarkan Euclid algoritma yang memiliki kompleksitas waktu berjalan O(n2).

Algoritma numeric juga bisa melakukan perhitungan pada nilai maksimum untuk sejumlah basis spesifik yang terdiri dari N digit. Algoritma ini juga menghitung nilai maksimum angka untuk sejumlah digit yang ditentukan, mis. menggunakan sistem basis 10, jumlah maksimum yang dapat kita buat terdiri dari 4 digit adalah angka 999910. Demikian juga jumlah maksimum yang terdiri dari 4 digit untuk bilangan dasar 2 adalah 11112 yaitu 1510.

Ekspresi dimana kita dapat menghitung nilai maksimum ini untuk N digit adalah: BN – 1. Dalam ekspresi sebelumnya B adalah basis bilangan, dan N adalah jumlah digit. Sebagai contoh jika kita ingin menentukan nilai maksimum untuk angka heksadesimal (basis 16) yang terdiri dari 6 digit ekspresi akan adalah sebagai berikut: 166 – 1. Nilai maksimum dari contoh sebelumnya akan direpresentasikan sebagai FFFFFF16 yang menghasilkan 1677721510.

Dalam Bilangan algoritma nomor basis harus dipertimbangkan terbatas pada nilai 2, 8, 9, dan 16. Untuk alasan ini dalam bilangan pelaksanaan aktual nomor basis memiliki tipe enumerasi. Tipe enumerasi Dasar didefinisikan sebagai:

Base = { Binary  <--    2;Octal <--   8;Decimal <--   10;Hexadecimal <--    16 }

Untuk Perkalian dan Pembagian pada algortima ini, Anda bisa mengalikan dengan penambahan berulang. Anda bisa mempelajari algoritme berikut:

    1011
  × 1101
  ------
    1011
   0000
  1011
 1011  
 ------
10001111

Kompleksitas dari algoritma tersebut adalah Θ (n2), karena mengalikan angka n-bit dengan angka satu-bit dapat dilakukan dalam waktu linier, dan kita pada dasarnya melakukan itu kali. Kemudian kita melakukan penambahan n + 1 angka 2n-bit: juga kuadratik.

Faktorial angka. Faktorial 0 dan 1 adalah 0. Tindakan yang disebutkan di atas sebagai kasus dasar sebagaimana factorial dari 2 adalah 2* factorial 1, mirip dengan factorial 3 adalah 3* factorial 2 dan seterusnya. Kita dapat menunjukkan bahwa faktorial nomor menggunakan bentuk N dimana N adalah nomoryang kita inginkan mencapai faktorial, meskipun dalam Algoritme kita tidak menggunakan notasi seperti itu tetapi sangat berguna untuk diketahui.

Inilah sekilas tentang algoritma numeric, dan kita telah menyajikan beberapa algoritma numerik, yang dapat diterapkan ke beberapa domain untuk membuat pekerjaan di masing-masing domain yang dapat dicapai. Numerik algoritme khususnya menggerakkan beberapa sistem paling canggih di planet dalam menghitung data seperti prakiraan cuaca.