Дерева (графи), Детальна інформація

Дерева (графи)
Тип документу: Реферат
Сторінок: 7
Предмет: Математика
Автор: Олексій
Розмір: 10.7
Скачувань: 1529
(a[i]*K^i) mod m = (a[i] * (p*m+t)) mod m =

= (a[i]* p*m) mod m + (a[i]*t) mod m =

= (a[i] * (K^i mod m)) mod m,

при цьому для довiльних чисел b[i] виконується

n n

( SUM b[i] ) mod m =( SUM b[i] mod m ) mod m.

i=0 i=0

 

Вiдмiтимо також очевидну рiвiсть

K^i mod m =[(K^(i-1) mod m) * K] mod m,

 

оскiльки якщо K^(i-1) = p*m+t,

то K^(i-1) mod m = t,

K^i = p*m*K+t*K и K^i mod m = t*K mod m =

= [(K^(i-1) mod m)*K] mod m.

 

Запис цього алгоритму (тут a[i] - K-iчнi цифри числа):

s:=0; t:=1;

for i:=0 to n do

begin

s:=(s+a[i]*t) mod m;

t:=t*K mod m;

end;

У змiннiй S пiсля закiнчення роботи алгоритму буде збеpiгатися шукана остача.

Пpиклад 3.Пiдpахувати кiлькiсть одиниць у двiйковому запису числа i. Кiлькiсть опеpацiй для pозв'язку задачi повинна бути мiнiмiзована.

 

Вказiвка:

cnt:=0; cnt -- лiчильник одиниць у числi i.

while (i<>0) do цикл повторюється кiлькiсть разiв, рiвне

begin кiлькостi одиниць в i. "Знищуємо" крайню

The online video editor trusted by teams to make professional video in minutes