{ Если что, часть программы не нужна для построения цепочки. Она просто иллюстрирует, что полученный результат верен. }
var sq : array[0..999] of array[0..9] of boolean; co : array[0..999] of integer; ar : array[1..10003] of 0..9; i,j: integer; x: integer; t : boolean; begin for i := 0 to 999 do begin for j := 0 to 9 do sq[i][j] := false; co[i] := 0; end; for i := 1 to 3 do ar[i] := 0; i := 3; t := true; {write('000');} while t do begin i := i + 1; x := ar[i-3]*100 + ar[i-2]*10 + ar[i-1]; if co[x] >= 10 then t := false else begin j := 1; while sq[x][j] do j := (j + 1) mod 10; ar[i] := j; sq[x][j] := true; co[x] := co[x] + 1; {write(j)} end; end; {writeln;} writeln('Length: ',i - 1);
{просто чтобы убедиться} for i := 0 to 999 do for j := 0 to 9 do sq[i][j] := false;
t := true; j := 0; i := 1; while (i <= 10000) and t do begin x := ar[i] * 100 + ar[i+1] * 10 + ar[i+2]; if sq[x][ar[i+3]] then t := false else begin sq[x][ar[i+3]] := true; j := j + 1; end; i := i + 1 end; if t and (j = 10000) then write('Confirmed') end.
OCR-версия страницы из учебника (текст страницы, которая находится выше):Отсюда получаем ас = ab и Ьс = Ьа. Из этих двух равенств следует, что ас-Ьс, или (Ь - а) с = 0. Но Ь - а - АВ, с-DC, поэтомуАВ DC = 0, и, значит, АВ J_ CD, что и требовалось доказать.464 Вычислите угол между прямыми АВ и CD, если: а) А (3; -2; 4), В (4; -1; 2), С (6; -3; 2), D (7; -3; 1); б) А (5; -8; -1), В (6; -8; -2), С (7; -5; -И), D (7; -7; -9); в) А (1; 0; 2), В (2; 1; 0), С (0; -2; -4), D (-2; -4; 0); г) А (-6; -15; 7), В (-7; -15; 8), С (14; -10; 9), D (14; -10; 7).465 Дана правильная треугольная призма АВСА1В1С1, в которой ААХ = = л/2АВ (рис. 139, а). Найдите угол между прямыми АСХ и АХВ. РешениеПусть АВ = а, тогда ААХ = v2a. Введем прямоугольную систему координат так, как показано на рисунке 139, б. Вершины А, В, А1т С!имеют следующие координаты (объясните почему): А^~—;|-;0j,В (0; а; 0), А, ; j; aV2 ), С, (0; 0; aV2).Отсюда находим координаты векторов АСХ и ВАХ:ACi{-^#rf;aV2}, ^ ji^;-|;aV2Векторы АСг и ВАг являются направляющими векторами прямых ACj и AlB. Искомый угол ф между ними можно найти по фор-муле (2V ,i_3a2+la2 + 2(J2!14 4 ,cos Ф = - --------— = откуда Ф = 60°.;3a2+la2 + 2a2 . ;la2+la2 + 2a2 2\' 4 4 \ 4 4466 В кубе ABCDA^Bfi^D^ точка М лежит на ребре АА,, причем AM : MAj = 3 : 1, а точка N — середина ребра ВС. Вычислите косинус угла между прямыми: а) MN и DDX\ б) MN и BD; в) MN и В,£»; г) MN и Afi.
Если что, часть программы не нужна для построения цепочки. Она просто иллюстрирует, что полученный результат верен.
}
var
sq : array[0..999] of array[0..9] of boolean;
co : array[0..999] of integer;
ar : array[1..10003] of 0..9;
i,j: integer;
x: integer;
t : boolean;
begin
for i := 0 to 999 do
begin
for j := 0 to 9 do
sq[i][j] := false;
co[i] := 0;
end;
for i := 1 to 3 do
ar[i] := 0;
i := 3;
t := true;
{write('000');}
while t do
begin
i := i + 1;
x := ar[i-3]*100 + ar[i-2]*10 + ar[i-1];
if co[x] >= 10 then t := false
else
begin
j := 1;
while sq[x][j] do
j := (j + 1) mod 10;
ar[i] := j;
sq[x][j] := true;
co[x] := co[x] + 1;
{write(j)}
end;
end;
{writeln;}
writeln('Length: ',i - 1);
{просто чтобы убедиться}
for i := 0 to 999 do
for j := 0 to 9 do
sq[i][j] := false;
t := true;
j := 0;
i := 1;
while (i <= 10000) and t do
begin
x := ar[i] * 100 + ar[i+1] * 10 + ar[i+2];
if sq[x][ar[i+3]] then t := false
else
begin
sq[x][ar[i+3]] := true;
j := j + 1;
end;
i := i + 1
end;
if t and (j = 10000) then
write('Confirmed')
end.