Program C++ untuk mengira logaritma nombor tertentu berdasarkan asas tertentu

WBOY
Lepaskan: 2023-08-27 08:57:22
ke hadapan
1316 orang telah melayarinya

Program C++ untuk mengira logaritma nombor tertentu berdasarkan asas tertentu

Dalam hampir semua bahasa pengaturcaraan moden, kita boleh menemui beberapa fungsi logaritma seperti logaritma asli, logaritma asas 2, logaritma asas 10, dll. Tetapi kadangkala kita perlu mengira logaritma asas yang berbeza yang tidak terdapat dalam fungsi perpustakaan yang diberikan. Untuk mencapai ini kita boleh menggunakan formula logaritma mudah. Dalam artikel ini, kita akan melihat cara mengira nilai logaritma dalam C++ menggunakan nombor yang diberikan dan asas yang diberikan.

Formula untuk mengira logaritma asas yang diberi

Andaikan kita telah mengambil nombor x, yang asasnya ialah k, yang juga telah diberi. Formulanya adalah seperti berikut: Terjemahan follow −

ialah: follow −

$$mathrm{log_{k}kiri ( x kanan )=frac{log_{m}kiri ( x kanan)}{log_{m}kiri ( k kanan )}}$$

di mana m adalah mana-mana yang diketahui (asas tersedia)

Gunakan log10() dengan m = 10.

Pustaka cmath C++ menyediakan kaedah log10() untuk mencari logaritma asas 10 bagi nombor tertentu. kami Fungsi yang sama boleh digunakan untuk mengira logaritma asas k. Sintaks yang digunakan ialah: Contoh log10() adalah seperti berikut −

Tatabahasa

#include < cmath >
Log10( <number> )
Salin selepas log masuk

Algoritma

  • Baca dua nombor x dan k

  • res := (gunakan log10(x) untuk mencari asas 10 logaritma x) / (gunakan log10(k) untuk mencari asas 10 logaritma k)

  • return res

Contoh

#include <iostream>
#include <cmath>
using namespace std;
float solve( int x, int k){
   float answer;
   answer = log10( x ) / log10( k );
   return answer;
}
int main(){
   cout << "Log base 8 for input x = 512 is: " << solve( 512, 8 ) <<
       endl;
   cout << "Log base 9 for input x = 59049 is: " << solve( 59049, 9 )
       << endl;
   cout << "Log base 2 for input x = 1024 is: " << solve( 1024, 2 ) <<
       endl;
   cout << "Log base 4 for input x = 256 is: " << solve( 256, 4 ) <<
       endl;
}
Salin selepas log masuk

Output

Log base 8 for input x = 512 is: 3
Log base 9 for input x = 59049 is: 5
Log base 2 for input x = 1024 is: 10
Log base 4 for input x = 256 is: 4
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Gunakan log2(), dengan m = 2.

Dalam perpustakaan cmath dalam C++, kaedah log2() membolehkan pengguna mencari logaritma asas 2 nombor yang diberi. Fungsi yang sama boleh digunakan untuk mengira logaritma asas k yang ditentukan Sintaks berikut digunakan untuk menggunakan log2() −

Tatabahasa

#include < cmath >
Log2( <number> )
Salin selepas log masuk

Algoritma

  • Baca dua nombor x dan k

  • res := (gunakan log2( x ) untuk mencari asas 2 logaritma x ) / (gunakan log2( k ) untuk mencari asas 2 logaritma x )

  • return res

Contoh

#include <iostream>
#include <cmath>
using namespace std;
float solve( int x, int k){
   float answer;
   answer = log2( x ) / log2( k );
   return answer;
}
int main(){
   cout << "Log base 8 for input x = 512 is: " << solve( 512, 8 ) <<
       endl;
   cout << "Log base 9 for input x = 59049 is: " << solve( 59049, 9 )
       << endl;
   cout << "Log base 2 for input x = 1024 is: " << solve( 1024, 2 ) <<
       endl;
   cout << "Log base 4 for input x = 256 is: " << solve( 256, 4 ) <<
       endl;
}
Salin selepas log masuk

Output

Log base 8 for input x = 512 is: 3
Log base 9 for input x = 59049 is: 5
Log base 2 for input x = 1024 is: 10
Log base 4 for input x = 256 is: 4
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Gunakan log() apabila m=e.

Dalam perpustakaan cmath dalam C++, kaedah log() logaritma asli membolehkan pengguna mencari logaritma Gunakan asas 'e' untuk nombor yang diberikan. Logaritma boleh dikira menggunakan asas k yang ditentukan Fungsi yang sama. Sintaks berikut digunakan untuk menggunakan fungsi log() −

Tatabahasa

#include < cmath >
log( <number> )
Salin selepas log masuk

Algoritma

  • Baca dua nombor x dan k

  • res := (gunakan log(x) untuk mencari logaritma x dalam asas e) / (gunakan log(k) untuk mencari logaritma x dalam asas e)

  • return res

Contoh

#include <iostream>
#include <cmath>
using namespace std;
float solve( int x, int k){
   float answer;
   answer = log( x ) / log( k );
   return answer;
}
int main(){
   cout << "Log base 8 for input x = 512 is: " << solve( 512, 8 ) <<
       endl;
   cout << "Log base 9 for input x = 59049 is: " << solve( 59049, 9 )
       << endl;
   cout << "Log base 2 for input x = 1024 is: " << solve( 1024, 2 ) <<
       endl;
   cout << "Log base 4 for input x = 256 is: " << solve( 256, 4 ) <<
       endl;
}
Salin selepas log masuk

Output

Log base 8 for input x = 512 is: 3
Log base 9 for input x = 59049 is: 5
Log base 2 for input x = 1024 is: 10
Log base 4 for input x = 256 is: 4
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Kesimpulan

Gunakan formula logaritma asas tertentu untuk mendapatkan hasil logaritma, Kami menggunakan mana-mana kaedah logaritma asas yang diketahui pada nombor x tertentu dan membahagikannya dengan Gunakan nilai yang diketahui sebagai asas logaritma asas baharu sebagai input. Dalam artikel ini kami gunakan Tiga fungsi logaritma sedia ada yang diketahui ialah log10(), log2() dan log() [logaritma asli] Menghasilkan keputusan untuk nombor yang diberikan dan asasnya.

Atas ialah kandungan terperinci Program C++ untuk mengira logaritma nombor tertentu berdasarkan asas tertentu. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan