цепочка из трёх бусин помеченных латинскими буквами x y z v w формируется по следующиму правилу на первом месте одна из бусин x y z не стоящая на втором месте в середине одна из бусин v w z которой нет на последнем месте в конце цепочки стоит одна из бусин w x y z сколько цепочек можно создать по этому правилу постройте дерево вариантов
const
n=100; // заменить на 10000
var
a:array[1..n] of byte;
i:byte;
j:integer;
begin
// инициализация, для
for j:=1 to n do a[j]:=Random(256);
// собственно программа
for i:=0 to 255 do
for j:=1 to n do
if a[j]=i then Write(i,' ');
end.
Тестовое решение:
5 8 9 11 11 14 14 17 18 19 21 22 24 24 29 30 33 36 40 45 46 47 55 55 56 58 61 62 64 66 68 73 74 75 85 88 91 94 96 96 96 98 102 103 108 109 111 111 116 119 122 123 129 129 130 135 137 139 143 144 149 149 155 155 160 169 170 173 177 178 181 182 190 193 196 198 199 199 200 206 206 207 209 222 224 225 226 229 230 235 237 240 243 246 249 250 251 252 254 255
//Версия 3.3, сборка 1634 (14.02.2018)
1)
begin
var a:=ArrRandom(ReadInteger('n='),20,79); a.Println;
var x:=a.Where(t->t.IsEven).Count;
If x>0 then Println('Количество четных:',x) else Println('Четных нету');
var y:=a.Where(t->t mod 10=6).Count;
If y>0 then Println('Количество оканч. на 6:',y) else Println('Оканч. на 6 нету');
end.
Пример:
n= 5
79 29 27 74 27
Количество четных: 1
Оканч. на 6 нету
2)
begin
var a:=ArrRandom(10,0,100); a.Println;
Println('Кол-во пар:',Range(0,8,2).Where(t->a[t]=a[t+1]).Count)
end.
Пример:
56 93 72 72 71 24 37 55 91 91
Кол-во пар: 2