Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Français - Português - 日本語 -
Справка Scilab >> Основные функции > modulo

modulo

симметричный арифметический остаток от деления по модулю m

pmodulo

положительный арифметический остаток от деления по модулю m

Синтаксис

i = modulo(n,m)

i = pmodulo(n,m)

Аргументы

m, n

Скаляр, вектор, матрица или гиперматрица закодированных целых чисел, реалов или многочлены с вещественными коэффициентами.                         m и n должны иметь один и тот же тип.                         Если они имеют целочисленный тип, они могут иметь разную длину кодирования                         (например, int8 и int16).                         Если ни один из них не является скалярным, они должны иметь одинаковые размеры.

i

Скалярная, векторная, матричная или гиперматрица типа n (и inttype). i принимает размеры более крупного m или n.

Для полиномов, если все остатки от деления в массиве i являются константами (порядок равен 0), то i имеет тип 1 (числа) вместо 2 (постоянные полиномы).

Описание

modulo вычисляет i = n (modulo m), т. е. остаток от деления n на m (n и m - целые числа).

Для полиномов используется pdiv().

            Для чисел,             

                    
  •                     modulo() вычисляет i = n - m. * int (n ./ m).                     Результат отрицательный (или нулевой), когда n отрицательный, и в противном случае.

                    
  •                 
  • pmodulo() вычисляет i = n - | m | . * floor (n ./ | m |), ответ является положительным либо равным причинам.

                    
  •             
        

        

            

                Если m содержит хотя бы одно значение 0, modulo(x, m)                 и pmodulo(x, m) выполнит деление на ноль.                 Если m имеет реальный тип, это исключение будет обрабатываться в соответствии с к режиму ieee().                 Для закодированных целых чисел он всегда будет давать ошибку.             
        

Примеры

n = [1,2,10,15];
m = [2,2,3,5];
modulo(n,m)

modulo(-3, 9)
modulo(10, -4)

pmodulo(-3, 9)
pmodulo(10, -6)
pmodulo(-10, -6)

// Кодированные целые числа
modulo( int8(-13), int16(-7))
pmodulo(int8(-13), int16(-7))
modulo( int8(-13), int16([-7 5]))
pmodulo(int8(-13), int16([-7 5]))
modulo( int8([-13 8]), int16(-7))
pmodulo(int8([-13 8]), int16(-7))
modulo( int8([-13 8]), int16([-7 5]))
pmodulo(int8([-13 8]), int16([-7 5]))

// гиперматрицам
m = grand(2,2,2,"uin",-100,100)
n = grand(2,2,2,"uin",-10 ,10);
n(n==0) = 1
modulo(m, 5)
pmodulo(m,5)
modulo(51, n)
pmodulo(51,n)
modulo(m, n)
pmodulo(m,n)

// Полиномы
modulo( %z^2+1, %z)
pmodulo(%z^2+1, %z)

Смотрите также

  • unwrap — unwrap a Y(x) profile or a Z(x,y) surface. Unfold a Y(x) profile
  • ieee — установка режима исключения с плавающей запятой

История

ВерсияОписание
5.5.0 Расширение до кодированных целых чесел и гиперматриц кодированных целых чисел или вещественных чисел.
6.0.2 Расширение до гиперматриц полиномов.
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Thu Feb 14 15:04:55 CET 2019