1 <?xml version="1.0" encoding="UTF-8"?>
3 * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
4 * Copyright (C) 2006-2008 - INRIA
5 * Copyright (C) 2018 - Samuel GOUGEON
7 * Copyright (C) 2012 - 2016 - Scilab Enterprises
9 * This file is hereby licensed under the terms of the GNU GPL v2.0,
10 * pursuant to article 5.3.4 of the CeCILL v.2.1.
11 * This file was originally licensed under the terms of the CeCILL v2.1,
12 * and continues to be available under such terms.
13 * For more information, see the COPYING file which you should have received
14 * along with this program.
17 <!-- module: polynomials -->
18 <refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
19 xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML"
20 xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org"
21 xml:lang="ru" xml:id="lcm">
23 <refname>lcm</refname>
24 <refpurpose>наименьшее общее кратное (положительное) целых чисел или полиномов</refpurpose>
27 <title>Синтаксис</title>
34 <title>Аргументы</title>
40 матрица полиномов (тип 2), или десятичных чисел или кодированных целых
49 полином или десятичное целое число: положительное нименьшее общее кратное у
50 составляющих <varname>p</varname>.
58 матрица полиномов или десятичных целых чисел (тип 1) с размером, как у
59 <varname>p</varname>, такая, что <literal>fact(i)= pp./p(i)</literal>.
66 <title>Описание</title>
68 <literal>pp=lcm(p)</literal> вычисляет НОК <varname>pp</varname> составляющих <varname>p</varname>.
71 Если <literal>p</literal> являются полиномами, то <literal>pp</literal> является полиномом и
72 <varname>fact</varname> также является матрицей полиномов.
75 Если <literal>p</literal> является массивом целых числел, то
78 если они являются кодированными целыми числами, то тогда они преобразуются
79 в десятичные целые числи перед обработкой.
82 Любые входные целые числа типа int64 или uint64 по модулю больше 2^53
83 будут усечены и <literal>lcm()</literal> вернёт неверный результат.
86 Если некоторые из них отрицательные, то возвращаемое значение <literal>pp</literal>
87 (их НОК) будет всегда положительным.
92 Намиеньшее общее кратное массива <literal>p</literal> вещественных чисел может быть
93 получено конвертированием его в полином перед вызовом <literal>lcm</literal>,
94 через <literal>p = inv_coeff(p, 0)</literal>.
98 <title>Примеры</title>
99 <para>С полиномами:</para>
100 <programlisting role="example"><![CDATA[
102 p = [s , s*(s+1) , s^2-1]
107 --> p = [s , s*(s+1) , s^2-1]
112 --> [pp, fact] = lcm(p)
125 <para>С кодированными целыми числами:</para>
126 <programlisting role="example"><![CDATA[
127 // Простые числа: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47
128 V = int16([2*3 3*7 ; 7*5 3*5])
132 --> V = int16([2*3 3*7 ; 7*5 3*5])
137 --> [pp, fact] = lcm(V)
145 <para>С десятичнми целыми числами:</para>
146 <programlisting role="example"><![CDATA[
147 V = [2*3 3*7 ; 7*5 3*5]
150 <para>С большими целыми числами:</para>
151 <programlisting role="example"><![CDATA[
153 [pp, fact] = lcm(V) // OK
156 --> V = [3*2^51 , 3*5]
160 --> [pp, fact] = lcm(V)
168 Когда числовое кодирование переполняет разрядную сетку, происходит усечение
169 и результаты возвращаются ошибочные:
171 <programlisting role="example"><![CDATA[
176 --> V = [3*2^52 , 3*5]
180 --> [pp, fact] = lcm(V)
188 <refsection role="see also">
189 <title>Смотрите также</title>
190 <simplelist type="inline">
192 <link linkend="gcd">gcd</link>
195 <link linkend="bezout">bezout</link>
198 <link linkend="factor">factor</link>
202 <refsection role="history">
203 <title>История</title>
206 <revnumber>6.0.1</revnumber>
208 Для входных целых чисел, возможно отрицательных, возвращаемое МОК теперь
213 <revnumber>6.0.2</revnumber>
217 Теперь поддерживаются входные кодированные целые числа типа int64 и uint64.
220 Теперь <varname>p</varname> может быть матрицей любой формы, необязательно строка.
223 Когда <varname>p</varname> является матрицей кодированных или десятичных целых
224 чисел, то вычисления теперь выполняются в числах с плавающей запятой вместо
226 <varname>pp</varname> и <varname>fact</varname> теперь десятичные целые числа
227 (вместо целых чисел типа int32).