1 Востаннє редагувалося mamkin haker (31.10.2021 19:27:53)

Тема: логарифм з довільною основою С++

Привіт!
Зіткнувся з проблемою, не можу нагуглити як взяти логарифм з довільною основою...
невже єдиний вихід є математичним*?
*https://wikimedia.org/api/rest_v1/media/math/render/svg/0c4f6a1b2fa97b02e43a2423eb11fdeadf4afb7c


приклад: Потрібно взяти логарифм з основою 3 від i

//писав не тестуючи, тому не бийте
#include <iostream>
#include <math.h>

using namespace std;

int main() {
  for (int i = 1; i < 11; i++) {
    cout << log(i) / log(3) << endl;
  }
}

2 Востаннє редагувалося ch0r_t (31.10.2021 19:34:36)

Re: логарифм з довільною основою С++

https://stackoverflow.com/questions/188 … ase-n-of-x ->

//  well this is rather a math problem instead of an actuall programming problem,
//  if i understand your problem correctly:
//  log_2 (x) = log_a (x) / log_a (2) where a can be any base.
//  Therefore you could use the math.h's function log(double)
double res = log(x)/log(2);

https://www.geeksforgeeks.org/program-t … -b-logb-a/  copy\paste ->

https://replace.org.ua/uploads/images/10563/d189917ea18d5aa49a83fa6aaac9e267.svg

// C++ program to find log(a) on any base b
#include <bits/stdc++.h>
using namespace std;
 
int log_a_to_base_b(int a, int b)
{
    return log(a) / log(b);
}
 
// Driver code
int main(){
    a = 256;
    b = 4;
    cout << log_a_to_base_b(a, b) << endl;
 
    return 0;
}
 
// This code is contributed by shubhamsingh10
Подякували: mamkin haker1

3

Re: логарифм з довільною основою С++

https://replace.org.ua/uploads/images/931/0d9fc09af10d1500b9f7c5b1d3fab3a4.jpg

Подякували: ch0r_t, mamkin haker2