Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Program C++ untuk mengira logaritma nombor tertentu berdasarkan asas tertentu

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

WBOY
WBOYke hadapan
2023-08-27 08:57:221313semak imbas

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> )

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;
}

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

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> )

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;
}

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

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> )

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;
}

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

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!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam