Форум программистов, компьютерный форум, киберфорум
Наши страницы
Алгоритмы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Runa
133 / 85 / 22
Регистрация: 28.08.2009
Сообщений: 363
1

Длина числа возведнного в степень

23.11.2010, 10:14. Просмотров 640. Ответов 3
Метки нет (Все метки)

Как определить сколько цифр будет в результате возведения а в степень х?
Нужно отфильтровать числа, результат возведения в степень которых превышает 1000 разрядов(цифр)
количество цифр а и х известно
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.11.2010, 10:14
Ответы с готовыми решениями:

Алгоритм возведения в 4-ю степень введённого числа
Между командами ввода и вывода впишите в алгоритм несколько команд присваивания, в результате чего...

Возведение в степень по модулю для большого числа
#include <vcl.h> #pragma hdrstop #include <iostream> #include <math.h> #include <conio.h>...

Длина числа до возведения в степень
Есть например 3^9 = 19683. Длина равна 5. Как определить эту длину не возводя само число в степень?

Вычислить степень числа. Число и степень со ввода
import java.io.IOException; class Powermy { public static void main(String args) ...

Написать программу с функцией, вычисляющей целую степень дробного числа. Учесть,что степень может быть положительной, отрицательной, нулевой
Написать программу с функцией, вычисляющей целую степень дробного числа. Учесть,что степень может...

3
taras atavin
4207 / 1774 / 211
Регистрация: 24.11.2009
Сообщений: 27,565
23.11.2010, 10:22 2
Длина целого числа равна его округлённому вверх до целых логарифму по основанию системы счисления. При возведении в степень логарифм умножается на показатель. Если число дробное, то, учитывая:
x^n=((x*z)^n)/(z^n),
умножаем его до целого и получаем, что длина умножается на показатель, причём, длины целой и дробной частей умножаются на показатель отдельно.

Добавлено через 1 минуту
то есть,
Pascal
1
:n1:n2
^x превращается в
Pascal
1
:n1*x:n2*x
.
1
Runa
133 / 85 / 22
Регистрация: 28.08.2009
Сообщений: 363
23.11.2010, 10:23  [ТС] 3
а результат логарифма округляется в какую сторону?
0
Mr.X
Эксперт С++
3184 / 1711 / 435
Регистрация: 03.05.2010
Сообщений: 3,867
23.11.2010, 15:27 4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
//////////////////////////////////////////////////////////////////////////////////////
//Как определить сколько цифр будет в результате возведения а в степень х?
//Нужно отфильтровать числа, результат возведения в степень которых 
//превышает 1000 разрядов(цифр)
//количество цифр а и х известно 
//////////////////////////////////////////////////////////////////////////////////////
#include <cmath>
#include <cstdlib>
#include <ctime>
#include <iostream>
#include <sstream>
#include <string>
//////////////////////////////////////////////////////////////////////////////////////
typedef long long  T_num;
//////////////////////////////////////////////////////////////////////////////////////
T_num  generate_not_zero_num()
{
    const T_num  MOD = 15;
    T_num  res = 0;
    while(!res)
    {
        res = rand() % MOD;
    }
    return  res;
}
//////////////////////////////////////////////////////////////////////////////////////
T_num  length_theor_a_x(T_num  a, T_num  x)
{
    //Умножаем десятичный логарифм a на x, результат округляем вниз до целого 
    //и прибавляем единицу.
    return  T_num(floor(log10(double(a)) * x)) + 1;
}
//////////////////////////////////////////////////////////////////////////////////////
T_num  length_pract(T_num  a_x)
{
    std::ostringstream  sout;
    sout << a_x;
    return  sout.str().size();
}
//////////////////////////////////////////////////////////////////////////////////////
int main()
{
    srand(static_cast<unsigned>(time(0)));
    
    T_num  a    = generate_not_zero_num();
    T_num  x    = generate_not_zero_num();
    T_num  a_x  = T_num(pow(double(a), double(x)));
    std::cout << "a = "
              << a
              << std::endl
              << "x = "
              << x
              << std::endl
              << "a_x = "
              << a_x
              << std::endl
              << "len_pract    = "
              << length_pract(a_x)
              << std::endl
              << "length_theor = "
              << length_theor_a_x(a, x)
              << std::endl
              << "len_diff     = "
              << length_theor_a_x(a, x) - length_pract(a_x)
              << std::endl;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.11.2010, 15:27

Возведение числа в степень за минимальное количество умножений, не используя возведение в степень (в чем ошибка?)
должно число подводиться в степень за минимальное кол умножения не используя возведение в степень....

Бинарное возведение в степень числа типа BigInteger в степень Biginteger
Здравствуйте. Не могу реализовать алгоритм бинарного возведения в степень. Есть 2 экземпляра...

Ввести два целых положительных числа a и b; вычислить и вывести степень b числа
Разработать программу, которая позволяет ввести два целых положительных числа a и b; вычислить и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru