Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 07.09.2011
Сообщений: 14
1

Перевод 10-го числа в 2-ое

18.09.2011, 18:24. Показов 1102. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Народ обьясните пжлста как работает эта функция(быстрое возведение числа в степень a^d mod n) :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
long powmod(long a, long d, long n)
{
    long b = 1;
 
    while (d) 
    {
        if (d % 2 == 0) 
        {
             d /= 2;
             a = (a * a) % n;
        }
        else 
        {
             d--;
             b = (b * a) % n;
         }
     }
     return b;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.09.2011, 18:24
Ответы с готовыми решениями:

Перевод числа из 10сс в 2сс,8сс и 16сс с заданием числа вещественного типа
Здраствуйте. Помогите с решением задачи. Задание: перевести число из десятичной системы счисления в...

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

Бинарные числа! Перевод простого числа в бираное и расчет.
Здравствуйте!Я понимаю, что моя просьба банальна, но я правда не могу никак разобраться с бинарными...

1. простые числа в массиве 2. перевод числа в строку
Здравствуйте. очень нужна помощь по программированию 1. удалить простые числа из массива у...

4
Эксперт С++
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
18.09.2011, 18:48 2
Думается, что такое еще быстрее работать будет:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
long powmod(long a, long d, long n)
{
    long rez = 1, b = a;
 
    while (d) 
    {
        if (d & 1)
        {
             rez *= b;
             rez %= n;
        }
        b *= b;
        b %= n;
        d >>= 1; 
     }
     return rez;
}
0
0 / 0 / 0
Регистрация: 07.09.2011
Сообщений: 14
18.09.2011, 19:20  [ТС] 3
Народ объясните этот кусок
C++
1
2
3
4
5
 else 
        {
             d--;
             b = (b * a) % n;
         }
0
silent_1991
18.09.2011, 19:46
  #4

Не по теме:

adds, и всё-таки вы в СибГУТИ учитесь... Зря обманули в прошлый раз, так бы может-быть помог...

0
6 / 6 / 1
Регистрация: 16.02.2011
Сообщений: 45
18.09.2011, 20:18 5
Цитата Сообщение от adds Посмотреть сообщение
Народ объясните этот кусок
C++
1
2
3
4
5
 else 
        {
             d--;
             b = (b * a) % n;
         }
Тебе не понятен только данный кусок кода или обязательно в контексте первого поста?
0
18.09.2011, 20:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.09.2011, 20:18
Помогаю со студенческими работами здесь

Разбиение строки на части, перевод строки в число и перевод числа
Есть задание: 1. Необходимо реализовать консольное приложение, позволяющее манипулировать строкой,...

Перевод числа
Не подскажите как шестнадцатеричное число со знаком перевезти в прямой код?

Перевод числа из 10 с.с. в 8 с.с.
не пойму как создать программу по переводу числа из 10 с.с. в 8 с.с. . Дали несколько задач на...

Перевод числа
Написать и отладить программу по переводу числа из двоичной позиционной системы счисления в...

Перевод числа из 10 в 2 сс
Написать рекурсивную функцию перевода числа из 10 в 2 систему счисления. Помогите пожалуйста.

перевод числа
подскажите как перевести в 10ую систему число которое записано в двух ячейках массива : a=10; a=99...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru