книги / Решение некоторых многоэкстремальных задач методом сужающихся окрестностей
..pdf3. Если р (plt р3) == 0, то все элементы, бывшие, соседними в
перестановке рх, остались соседними и в перестановке р2. Следова
тельно, ft = Ра-
4. Если при переходе от перестановки рх к перестановке р2 нару шается расположение соседних элементов ia и i0 +i, то при обрат ном переходе будет нарушено соседство элементов /э«х» и 1ш+и Сле
довательно, р (pi, р2) — р (р2, Pi), |
(ilf i2, |
i„), р2 = (Д, /4, ... |
||
5. Рассмотрим перестановки рх = |
||||
—, L), Ps = (*l, *2» |
*/>)• ПуСТЬ ia == />(00 = *v<coЕсли у (о) |
-f 1 ^ |
||
у (a -j- 1), то обязательно выполняется хотя бы одно из |
следую |
|||
щих двух неравенств: |
|
1)) ф у |
|
|
Р (а) + 1 Ф Р (а + 1) |
или у (Р (а + |
(Р (а)) + 1. |
Иными |
словами, если при переходе от перестановки рх к перестановке р3 нарушилось соседство элементов ia и ie+i, то либо их соседство будет нарушено и при переходе к перестановке р2, либо оно будет нарушено при переходе от перестановки р2 к перестановке р3. Отсю да следует справедливость неравенства треугольника (2.5) для слу чая цепной метрики.
Остановимся далее на моделировании перестановки, лежащей в окрестности заданного радиуса с центром в фиксированной пе рестановке.
Пусть задана перестановка р0 £ П и радиус R замкнутой окрест ности, т. е. шара. Вследствие сказанного выше в качестве R следует выбирать целое число из интервала 0 < R < л — 1 . Необходимо построить перестановки р £ UR (р0), т. е. лежащие в шаре радиуса R с центром в точке р0. Для этого используется следующий алго ритм.
А л г о р и т м 2 .1 .
Ш а г 1. Получить R реализаций случайной величины, которая с равной вероятностью принимает любые целочисленные значения из сегмента И, п + 1 ).
Ша г 2 . Упорядочить полученные реализации по возрастанию,
т.е. построить из них последовательность {/а} такую, что
О< / i < . . . < h < n + 1 .
Ша г 3. Множество элементов перестановки р0 разбить на непересекающиеся подмножества Sa (а = 1,2, ...., R + 1) по следующему
признаку. Элемент, стоящий на r-м месте в перестановке р0, попадает в множество Sa, если /о—i < г < /в. При этом полагают/„ = 0, /я+i =
===н -f- 1 .
Ш а г 4. Моделировать перестановку р* из R + 1 символов и в соответствии с ней разместить множества Sa. В результате будет построена перестановка р, находящаяся от перестановки р0 на рас стоянии, не большем чем R в цепной метрике.
Коротко работу этого алгоритма можно описать следующим образом. Случайно выбирается R мест разрезов в исходной пере становке р0, а затем разрезанные участки случайным образом состав ляются в новую перестановку. Заметим, что построенная перестановка
41
будет лежать от р0 на расстоянии, не большем /?, но не обяза тельно в точности на расстоянии R. Дело в том, что разрезанные части перестановки р0 могут соединиться так же, как в исходной перестановке. Кроме того, при получении реализаций случайной величины, указывающих места разреза, могут появиться одинаковые числа.
На языке ФОРТРАН приведем текст программы CHAIN, реа лизующей построение перестановок из /^-окрестностей заданной пе рестановки в цепной метрике.
С |
SUBROUTINE CHAIN |
|
******************************************************************** |
||
с |
||
с |
ПРОГРАММА ПРЕДНАЗНАЧЕНА ДЛЯ ПОСТРОЕНИЯ ПЕРЕСТА- |
|
С |
СНОВКИ, ЛЕЖАЩЕЙ В ОКРЕСТНОСТИ ЗАДАННОГО РАДИУСА,
СДЛЯ СЛУЧАЯ ЦЕПНОЙ МЕТРИКИ
С
СОПИСАНИЕ ПАРАМЕТРОВ:
СN — ЧИСЛО СИМВОЛОВ В ПЕРЕСТАНОВКЕ
СNR — РАДИУС ОКРЕСТНОСТИ
СIBP — ЦЕНТРАЛЬНАЯ ПЕРЕСТАНОВКА
СI P -ИСКО М А Я ПЕРЕСТАНОВКА
С
СВЫЗЫВАЕМЫЕ ФУНКЦИИ И ПОДПРОГРАММЫ:
СRNDM, PERMUT
С
с********************************************************************
COMMON /INNE/ N /RANE/ NR /MENE/ IBP(300), IP(300) DIMENSION JP(300), KP(300), 10(300)
C
C
С ВЫБОР МЕСТ РАЗРЕЗА ПЕРЕСТАНОВКИ: МАССИВ JP
С
N1 = |
N — 1 |
XS = |
RNDM (—1) |
JP(1) = XS*N1 + 1 |
|
DO 1 |
I = 2,NR |
IJ = |
I — 1 |
3XS = RNDM (—1) M = XS*N1 + 1 DO 2 J = 1,IJ
IF (M.EQ.JP(J))
—GO TO 3
2CONTINUE
1 JP(1) = M
N2 = NR — 1
DO 4 1 = |
1,N2 |
K = 1 + |
1 |
DO 4 J = |
K,NR |
IF(JP(J) — JP(I)) 5,4,4
5L = JP(I) JP(I) = JP(J)
JP(J) = L
4 CONTINUE
42
с
с ВЫЧИСЛЕНИЕ ДЛИН ГРУПП: МАССИВ КР
с
КР(1) = JP(1)
DO 6 I = 2,NR
6KP(I) = JP(I) - JP(I - 1) KP(NR + 1) = N - JP(NR)
с
с ВЫБОР ПОРЯДКА СЛЕДОВАНИЯ ГРУПП : МАССИВ 10
с
NN = |
N |
1 |
N = |
NR + |
|
CALL PERMUT |
||
DO 1 2 1 = |
1,N |
12 10(1) = IP(I)
С
с ПОСТРОЕНИЕ ПЕРЕСТАНОВКИ IP
с
L = 0
DO 7 I = 1,N К = 10(1)
M = KP(K)
IF (К — 1) 9,9,10
9MM = 0 GO TO 11
10MM = JP(K — 1)
ПD0 8 J = 1,M
|
LI = |
L + |
J |
8 |
MI = |
M M + J |
|
IP(LI) = |
IBP(MI) |
||
7 |
L = |
L + |
M |
|
N = |
NN |
|
RETURN
END
Замечания к программе CHAIN.
1 . В программе используется подпрограмма PERMUT, предна значенная для построения произвольной перестановки из заданного числа символов. Ниже следует текст этой подпрограммы на языке ФОРТРАН.
SUBROUTINE PERMUT
С
С********************************************************************
С
СПРОГРАММА ПРЕДНАЗНАЧЕНА ДЛЯ ПОСТРОЕНИЯ
СПРОИЗВОЛЬНОЙ ПЕРЕСТАНОВКИ ИЗ N СИМВОЛОВ
СОПИСАНИЕ ПАРАМЕТРОВ:
С
СN — ЧИСЛО СИМВОЛОВ В ПЕРЕСТАНОВКЕ
СIP — ПЕРЕСТАНОВКА
С
СВЫЗЫВАЕМЫЕ ФУНКЦИИ И ПОДПРОГРАММЫ:
СRNDM
С********************************************************************
43
COMMON /INNE/ N /MENE/ IBP (300), IP (300)
DO 1 I = |
1,N |
||
1 IP(I) = |
0 |
1,N |
|
DO |
2 |
I = |
|
J = |
RNDM (—1)*N + 1 |
3IF (IP(J).NE.(3fGOTO 4 IP(J) = I
GO TO 2
4J = J + 1
IF(J.GT.N) J = J - N
GO ТОЗ
2CONTINUE RETURN END
2.Подпрограмма — функция RNDM, которая используется в программах CHAIN и PERMUT, входит в стандартное математи
ческое обеспечение машины «БЭСМ-6 ». Эта подпрограмма написа на на автокоде MADLEN, текст ее содержится в работе [4]. Опера тор XS = RNDM (—1) заносит в ячейку XS случайное число из интервала (0,1). Получаемые при этом числа распределены по равномерному закону.
Если программа CHAIN используется на вычислительных маши нах серии ЕС, то стандартную подпрограмму RNDM нужно заме-
. нить следующей:
FUNCTION RNDM (1) |
|
|
|
|
|
|
|
||
COMMON /RND/ IX |
|
|
|
|
|
|
|
||
CALL RANDU (IX,IY,Y) |
|
|
|
|
|
|
|||
IX = |
IY |
|
|
|
|
|
|
|
|
RNDM = Y |
|
|
|
|
|
|
|
|
|
RETURN |
|
|
|
|
|
|
|
|
|
END |
|
|
|
|
|
|
|
|
|
Здесь RANDU — датчик случайных |
чисел, |
входящий в математи |
|||||||
ческое обеспечение |
ЭВМ ЕС. Текст |
этой подпрограммы |
приведен |
||||||
|
|
|
|
в работе |
[55]. |
Кроме того, |
при |
ис |
|
|
|
|
|
пользовании |
программы CHAIN |
на |
|||
|
|
|
|
машинах ЕС необходимо в начале са |
|||||
п |
R |
t |
|
мой внешней |
программы, обращаю |
||||
|
|
||||||||
|
|
|
|
щейся к CHAIN, добавить следующие |
|||||
200 |
100 |
125,4 |
|
два оператора: |
|
|
|||
200 |
10 |
2,1 |
|
COMMON /RND/ IX |
|
|
|||
200 |
1 |
0,7 |
|
|
|
||||
100 |
50 |
31,3 |
|
IX = |
65539 |
|
|
||
100 |
10 |
1.8 |
|
которые, |
как говорят, осуществляют |
||||
100 |
1 |
0,4 |
|
||||||
20 |
10 |
1,6 |
|
начальный взвод датчика случайных |
|||||
20 |
5 |
0,6 |
|
чисел. |
|
|
|
|
|
20 |
1 |
0,1 |
- |
Сделанное замечание по поводу под |
|||||
10 |
3 |
0,3 |
программы RNDM относится не толь
ко к программе CHAIN, но и ко всем остальным программам, использующим RNDM. 3. О времени работы программы CHAIN можно судить по табл. 2.1. На ЭЦВМ «БЭСМ-6 »
44
построение 1 0 0 перестановок из я символов, лежащих в шаре ради уса R, занимает время t секунд.
П р и м е р . Пусть нужно построить перестановку из окрестнос ти радиуса 4 с центром в перестановке р0 =* (1 , 2 , 3, 4, 5, 6 ). Допус тим, что получены следующие реализации случайной величины из
сегмента [1,7) : = 1, / 2 |
= 3, / 3 = |
5, / 4 = |
6 . |
Тогда |
множества |
|||
5а |
состоят из |
следующих |
элементов: |
Sl = |
0 , |
S2 = {1, |
2}, |
S 3 = |
= |
{3, 4), S4 = |
{5}, S6 = {6 }. Пусть |
перестановка p* такая: |
p* = |
||||
= |
(4, 2, 3, 5, |
1). Тогда будет построена перестановка р = (5, |
1,2, |
|||||
3, |
4, 6 ), которая находится от исходной перестановки |
р0 на |
рас |
|||||
стоянии 2 в цепной метрике. |
|
|
|
|
|
§ 3. Лексикографическая метрика
Как указывалось выше, пространство П перестановок можно упо рядочить с помощью лексикографического отношения порядка. Этот принцип упорядочения можно использовать и для введения мет
рики. |
Каждой |
перестановке р £ П |
ставится в соответствие число |
К (р), |
которое |
является номером |
места, занимаемого перестанов |
кой р при лексикографическом упорядочении всего множества П. Расстояние между перестановками рг и р2 в лексикографической метрике определяется как | К (pt) — К (р2) |. Вопрос о проверке выполнения аксиом метрики в данном случае фактически не воз никает, поскольку множество П с введенной функцией расстояния изометрично множеству натуральных чисел от 1 до я! с обычным
эвклидовым расстоянием.
Перестановка (1 , 2 , 3, 4, ..., я) имеет номер 1 , а перестановка (я, я — 1 , я — 2 , ..., 1) — номер я!. Это крайние случаи. Поэтому максимальное расстояние между двумя перестановками равно я! —
— 1 . Для вычисления функции К (р) для произвольной перестановки введем на множестве П разбиение на классы m-го порядка [15].
Будем считать, |
что перестановки рг = (iu |
/2, ...» |
in) и р2 = |
(/ь |
|
/г» ••••» in ) |
входят в один класс порядка т (т = |
1 , 2 , |
я), если ix = |
||
= iu h = |
/2» •••» |
hn — im• Очевидно, что множество П состоит |
из |
я классов 1-го порядка, я (я — 1) классов 2-го порядка и т. д. Раз биение на классы имеет следующие свойства.
При любом т разбиение /я-го порядка представляет собой раз биение множества П на непересекающиеся классы, т. е. классы т-го порядка представляет собой непересекающиеся множества, объ единение которых совпадает с множеством П.
Если / > т , то разбиение /-го порядка представляет собой из мельчение разбиения m-го порядка, т. е. при I > т любые переста новки из одного класса /-го порядка обязательно входят в один класс m-го порядка.
Все классы одного порядка содержат одинаковое число переста новок.
Таким образом, получаем некоторую иерархию классов. Все мно жество П, состоящее из я! перестановок, разделилось на я классов
45
1 -го порядка, каждый из которых состоит из (п — 1)1 переста новок. В свою очередь, каждый класс 1-го порядка содержит п — 1 классов 2 -го порядка, состоящих из (п — 2 )! перестановок, и т. д. Наконец, имеем п! классов (п — 1)-го порядка, каждый из которых содержит одну перестановку.
Внутри каждого класса т-го порядка классы (т + 1)-го поряд ка можно перенумеровать следующим образом. Первым классом (т + 1)-го порядка назовем класс с наименьшим элементом на (т -f-
+1)-м месте; вторым назовем класс со следующим по возрастанию
элементом на (т + 1)-м месте и т. д.
Общая формула для выражения номера перестановки в зависи мости от номеров классов различных порядков, в которые входит данная перестановка, имеет следующий вид. Если номера классов m-х порядков в классах ( т — 1)-х порядков обозначить 1т, то но мер перестановки в общем ряду п\ перестановок определится следую
щим образом: |
|
|
К (Р) — (h — 1) (п — 1)! + (h — 1) (п — 2) 1+ |
-----Ь (/т — 1)Х |
|
X ( п - т ) ! + • • • + (In—2 1 ) • 2 ! + ( /„ - 1 |
— 1 ) + |
1 . (2 .6 ) |
Практически число 1т определяется как порядковый |
номер сим |
вола в ряду, составленном по возрастанию номеров символов. При этом на каждом шаге классифицированный символ вычеркивается из ряда и оставшиеся символы снова располагаются в порядке воз растания номеров для определения следующего номера класса.
Приведем пример, объясняющий использование формулы (2.6).
Пусть р = (2 , 1, 4, 3, |
5). Тогда 1г = 2, так как первый элемент пере |
|
становки р занимает |
в основном ряду 1, |
2, 3, 4, 5 второе место. |
На втором шаге элемент 2 вычеркивается |
и в качестве основного |
ряда остается 1, 3, 4, 5. Поэтому l2 = 1, так как 1 находится на пер вом месте. Основной ряд на третьем шаге — 3,4,5. Поэтому 1а = 2.
На четвертом шаге основной ряд — 3,5. Поэтому / 4 = |
1. Вследствие |
|||||
формулы (2 .6 ) |
|
|
|
|
|
|
К (р) = (2 - |
1) • 4! + |
(1 - 1) • 3! + |
(2 - 1) • 21 + |
(1 - |
1) + |
1 = 27. |
Опишем |
алгоритм |
построения |
перестановок |
из |
шара |
радиуса |
R с центром в фиксированной перестановке р0. А л г о р и т м 2 .2 .
Ша г 1. Определить указанным выше способом номер переста новки р0 — число К (Ро).
Ша г 2. Случайным образом выбрать целое число г из сегмента
[1 , 7?] и знак (плюс или минус). Построить номер перестановки р
по правилу |
К (р) = К (Ро) ± *• |
Ш а г 3. |
Если число К (р) удовлетворяет неравенству 1 < |
<К (р) < «I, то перейти к шагу 4; иначе перейти к шагу 2.
Ша г 4. Последовательно определить числа qt (i — 1, 2, ..., п —
— 2 ) по следующим правилам: qx — остаток от деления \К (р) — 1 ]
на |
(п — 1 )!, a qt (i = 2 , 3, ...., п — 2 ) — остатки от деления qt-1 |
на |
(п — t)!. |
46
Ш а г 5. Определить числа lt (I = |
1, 2, |
га — 1) по формулам |
||
R e n t i e r [f f i L f f r ] + U |
||||
h = entier [~^1 Г7 )у] |
“f" 1» |
* = |
2, |
3, . . . , n 2, |
In—I |
= <7/1—2+ |
1• |
|
Ш а г 6 . На основании полученной последовательности {/*} по строить искомую перестановку р — (/х, /2, .... /„) следующим обра зом. Положить t'x — 1\ и вычеркнуть число г\ из последовательности 1 , 2 ....... га. Положить t2 равным числу, стоящему на /2-м месте в полученной «прореженной» последовательности, и вычеркнуть ia из последовательности и т. д. Наконец, положить in равным единст
венному незачеркнутому числу |
последовательности 1 , 2 , ..., га. |
П р и м е р . Пусть требуется |
построить перестановку р — (iu |
i2, is, /4, t8), лежащую в круге радиуса 8 с центром в перестановке
Ро = (2, з, 1, 4, 5). |
|
Прежде всего определим номер перестановки р0. В соответствии |
|
с приведенным выше правилом найдем, что = |
2 , / 2 = 2 , l3 = I, |
/ 4 = 1 . Тогда из формулы (2 .6 ) получим К (р0) = |
31. |
Пусть в качестве величины г используется число 7 и знак плюс. |
Тогда необходимо построить перестановку р, для которой К (р) —
= 38. Для этого параллельно вычисляем последовательности |
{qt\ |
||||||||||||
и {/*}: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<7х = к |
(р) — 1 — (га — 1)! = 37 — 24 = |
13, |
|
|
|
|||||||
h = |
entier [ |
^ ~ |
, |
- ] + |
|
1 = |
entier (-g -) |
+ 1 = 2 , |
|
|
|||
|
|
q2 = <7X— 2 • (га — 2 ) 1= |
13 — 2 - 6 = |
1, |
|
|
|
||||||
k = |
entier [ |
(n _^2), |
j + |
1 |
= |
entier |
+ 1 = 3 , |
|
|
||||
|
|
|
Qz ~ |
Яч |
^ |
|
|
3)! = 1, |
|
|
|
|
|
/3 = |
entier [ (и-А~3 Д~] + |
1 |
= |
entier (4 |
") + |
1 = |
^ |
|
|
||||
|
|
|
|
h — Qs + |
1 = 2 . |
|
{lk} |
|
|
|
|||
Таким образом, получим, что последовательность |
имеет |
вид |
|||||||||||
2, 3, 1 , 2. В соответствии с правилами шага 6 |
алгоритма полагаем |
||||||||||||
t'x = /j = 2. |
После этого вычеркиваем элемент 2 и получаем после |
||||||||||||
довательность 1 , 3, 4, 5. На месте с номером / 2 |
= 3 в этой последо |
||||||||||||
вательности находится элемент 4. Поэтому i2 = |
4 и 4 вычеркиваем, |
||||||||||||
получая последовательность 1 , 3, 5. На месте с номером / 3 |
= 1 |
в этой |
|||||||||||
последовательности находится 1. Поэтому t3 = |
1 и остается |
после |
|||||||||||
довательность 3, 5. |
В ней на месте / 4 |
= 2 стоит элемент 5. |
Следо |
||||||||||
вательно, t4 |
= |
5. Оставшийся элемент 3 будет равен г6. Таким обра |
|||||||||||
зом, искомая |
последовательность р |
имеет вид (2, 4, |
1, 5, |
3). |
|
|
47
Алгоритм 2.2, заимствованный из [15], может успешно исполь зоваться при работе с перестановками из сравнительно небольшого
числа |
символов. Однако уже при числе символов в перестановке |
п = 2 0 |
непосредственная машинная реализация этого алгоритма |
становится затруднительной. Дело в том, что наибольшее число, |
которое можно записать в одной ячейке памяти на ЭЦВМ «БЭСМ-6 », примерно равно 1019. Пользуясь формулой Стирлинга, можно оценить, что 21! есть величина порядка 1020. Поэтому для машин ного представления номеров перестановок из более чем 2 0 символов использования обычных действий арифметики не достаточно.
Чтобы строить перестановки, лежащие в заданном круге, в слу чае достаточно большого числа символов (п > 2 0 ) разработан спе
циальный алгоритм [40], основанный на использовании так |
называ |
||||
емой факториальной системы |
счисления. |
|
|
||
Пусть имеем |
перестановку |
|
|
|
|
|
Р ~ ( Ч > *2» |
■ • • > |
• • • > |
in)* |
|
Для каждого ia (кроме in) положим |
|
|
|
||
где 1а — число |
ka = ia — lay |
|
|
. (2*7) |
|
элементов множества |
|
|
|
||
|
{/р : Р < а , |
|
~ |
(2 .8 ) |
Тогда номер перестановки при лексикографическом упорядочива нии р можно выразить через коэффициенты kd (оо = 1 , 2 , ..., п — 1) следующим образом:
|
К(р) = |
£ ka ( n - a ) \ . |
|
|
(2.9) |
||||
|
|
|
а=1 |
|
|
|
а г — расстояние от |
||
Пусть р0 — центр |
некоторой |
^-окрестности, |
|||||||
центра до некоторой перестановки рг (г < |
R). Тогда |
|
|
||||||
или |
IК (Ро) — К (р,) | = |
г, |
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
п—1 |
|
|
п—1 |
k'a(п — а) I = Г, |
(2. 10) |
||||
£ |
ka(n — а) I — £ |
||||||||
а=1 |
|
|
а= 1 |
|
|
|
перестановки р0, |
|
|
где ka — коэффициенты разложения (2.9) |
для |
а |
|||||||
ka — такие же коэффициенты для |
перестановки рх. Произведя |
в |
|||||||
(2 .1 0 ) перенумерацию, |
получим |
|
|
|
|
|
|
||
|п—1 |
|
|
|
|
|
|
(2. 11) |
||
I V |
k°к п—а |
■d\— s 'd L a - d\ |
= |
Г. |
|||||
|
|
|
a—1 |
|
|
k& (d — 1, ..., |
n — 1) |
||
В выражении (2.11) известны коэффициенты |
|||||||||
и расстояние т. Следует |
определить коэффициенты kla (d — 1, ... |
.... п — 1), а затем восстановить |
перестановку pt. Заметим, что вы |
ражение |
|
К (Р) = £ |
Кп—а • d\ . |
a=I
4В
есть свертка некоторой позиционной записи числа К (р), в которой оо-й разряд имеет вес а!. Такая система счисления названа фактори альной [40].
Факториальная система счисления является позиционной, так как действительное значение, представляемое каждой его цифрой, зависит от положения этой цифры внутри числа. При этом вес св-й цифры (считая справа) целого факториального числа равен оо!. Вес же со-й цифры после запятой, разделяющей целую и дробную часть смешанного числа, равен 1 / (<х +- 1.)!. Например, число 4301, 133 мож но записать следующим образом: 4 x 4 1 + 3 x 3 1 + 0 x 2 1 + 1 X
X И + 2i + зТ + 4f‘
Очевидно, факториальная система счисления должна быть обес печена бесконечным набором различных символов для изображения цифр.
Например, для того чтобы уметь изображать числа вида пГ— 1, необходимо использовать п различных символов. Это, однако, не препятствует успешному использованию факториальной системы. Во-первых, располагая лишь 47 символами русского и латинского алфавитов, можно записать любое число из интервала [0, 10е0]. Вовторых, если допустить, что цифра числа может изображаться на бором символов, а не одним символом, то для изображения факто риальных цифр удобно было бы использовать десятичные числа и таким образом обойтись теми же десятью символами 0,1, ..., 9. При этом, однако, нужно предусмотреть символ пробела для отделения одних факториальных цифр от других.
В связи с тем, что вес а-го разряда равен а!, в нем не должно быть более чем а единиц первого разряда, так как в противном случае появляется единица переноса в (а + 1)-й разряд. Таким образом, «наибольшее» факториальное число по аналогии а десятичным ...
9999, 999 ... имеет вйд
... И 10 9 8 7 6 5 4 3 2 1, 1 2 3 4 5 ...
Иногда требуется числа из одной системы счисления переводить в другую. Покажем на примерах приемы перевода целых и дроб ных чисел из десятичной системы счисления в факториальную и на оборот.
П р и м е р 1. Найти факториальное представление числа 99<ю>. 1 ак как
99:2 есть 4 9 и 1 в остатке,
49:3 есть 1б и 1 в остатке,
16:4 |
есть |
4 |
и 0 |
в остатке, |
|
4 :5 |
есть |
0 |
и |
4 |
в остатке, |
то 99<ю> = 4011<|> |
десятичное |
представление числа 4121 <|>. |
|||
П р и м е р 2 . Найти |
|||||
Так как |
|
4 x 4 = |
16, |
||
|
|
4 9—961 |
40 |
|
|
|
|
( 1 6 + 1 ) х З |
= |
51, |
|
|
|
||||
|
|
|
|
(51 + |
2) х |
2 = |
106, |
|
|
|
|||
|
|
|
(106 + |
|
1) х |
1 = |
107, |
|
|
|
|||
то 4121<t> = 107<ю>. |
Найти |
факториальное |
|
представление |
числа |
||||||||
|
П р и м е р |
3. |
|
||||||||||
0,567<ю>- Так |
как |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0,567 х |
2 = |
1,134 = |
1 +0,134, |
|
|||||||
|
|
0,134 х |
3 = |
0,402 = |
0 + |
0,402, |
|
||||||
|
|
0,402 х |
4 = |
1,608 = |
1 + |
0,608, |
|
||||||
|
|
0,608 х 5 = |
3,040 = |
3 + |
0,04, |
|
|||||||
|
|
0,04 X 6 = |
а,24 |
= |
0 + |
0,24, |
|
||||||
|
|
0,24 x 7 = |
1,68 |
= |
1 +0,68, |
|
|||||||
|
|
0,68 x |
8 = |
5,44 |
= 5 + |
0,44 |
|
||||||
|
|
0,44 х |
9 = |
3,96 |
= |
3 + |
0,96, |
|
|||||
|
|
0,96 х |
Ю = |
9,6 |
= 9 |
+ 06, |
|
|
|||||
|
|
0 , 6 X 11 = 6 , 6 = 6 + 0 ,6 , |
|
|
|||||||||
|
|
0,6 х |
12 = |
7,2 = |
7 + 0,2, |
|
|
||||||
|
|
0 , 2 х 13 = 2 , 6 = 2 + 0 ,6 , |
|
|
|||||||||
|
|
0,6 х |
14 = |
|
8,4 = 8 + 0,4, |
|
|
||||||
|
|
0,4 х |
15 = |
|
6,0 = |
6 + 0,0, |
|
|
|||||
то |
0,567<ю> = |
0,10130153967286<|>. |
|
|
|
|
|
||||||
|
П р и м е р 4. Найти десятичное представление числа 0,10304<|>. |
||||||||||||
Так как |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 :6 = 0,66 |
|
|
|
|
|
|
|
||||
|
|
|
0 + 0 , 6 6 . . . = 0 , 6 6 |
|
|
|
|||||||
|
|
0,66 |
|
: |
5 = |
0,133 . . . . |
|
|
|||||
|
|
|
3 +0,133 . . . |
=3,133 . . . . |
|
||||||||
|
|
3,133 |
. . . |
-.4 = 0,7833 . . . , |
|
|
|||||||
|
|
|
0 +0,7833 . . . =0,7833 . . . . |
|
|||||||||
|
|
0,7833 |
. . . |
: 3 = |
0,2611 . . . , |
|
|
||||||
|
|
|
1 +0,2611 . .. = |
1,2611 . . . . |
|
||||||||
|
|
1,2611 |
. . . |
:2 = |
0,63055 . . . . |
|
|||||||
то |
0,10304<|> « |
0,63055 ... <ю>. |
|
|
|
|
легко получить циф |
||||||
|
Учитывая, что по известной перестановке |
||||||||||||
ры факториального |
номера |
|
перестановки |
(по формулам |
(2.9)) |
||||||||
и |
что переход от |
факториального |
номера |
к самой перестановке |
50