Saya sedang berupaya mengoptimalkan Implementasi Kompresi Aritmatika saya. Saya telah menyertakan algoritma pengkodean aritmatika dasar di bawah ini:
lower bound = 0
upper bound = 1
while there are still symbols to encode
current range = upper bound - lower bound
upper bound = lower bound + (current range × upper bound of new symbol)
lower bound = lower bound + (current range × lower bound of new symbol)
end while
Saya punya ide untuk membulatkan nilai saya, tetapi untuk melakukannya, penghitungan batas atas TIDAK BISA menggunakan nilai batas bawah. Saya tidak tahu bagaimana melakukan itu.
Informasi lebih lanjut: Saya berencana untuk membulatkan batas bawah ke atas, mempersempit rentangnya, sehingga mempertahankan presisi, sambil membuat angka saya memiliki angka yang lebih sedikit. Kemudian bulatkan batas atas saya ke bawah dengan cara yang sama. Namun perhitungan batas atas membuatnya bertambah jika kita menaikkan nilai batas bawah, sehingga membuat algoritma menjadi salah.
Pertanyaan saya adalah: Bagaimana cara menghitung batas atas, tanpa menggunakan nilai batas bawah?
long
sebagai gantinya. - person comingstorm   schedule 22.03.2013>>>
untuk melakukan jenis pergeseran yang Anda perlukan untuk kompresi aritmatika. - person comingstorm   schedule 22.03.2013<<
. Namun, bergantung pada cara Anda mengimplementasikan matematika Anda, mengetahui tentang operator shift kanan yang tidak bertanda tangan juga bisa berguna... - person comingstorm   schedule 22.03.2013