{ Вам следовало бы более точно описать, что вам нужно. Непонятно, что это за условие со следованием. В примере 21106 за цифрой 2 следует 11, но за 11 не следует ничего из перечисленного. Ну или в нем 10 следует за 1, но тогда зачем условия следования для 10..12? + ничего не сказано про случайное распределение этих чисел. Так-то программа, которая все время выводит "1", тоже подходит под эти условия }
//PascalABC.NET версия 3.2, сборка 1389 //Если программа не запускается, то обновите версию
function CreateArray(length: integer): array of integer; begin var a := new integer[length]; for var i := 0 to length - 1 do a[i] := Random(0, 100); // Println(a); Result := a; end;
begin var arrays := new List<(char, array of integer)>(); arrays.Add(('a', CreateArray(15))); arrays.Add(('b', CreateArray(13))); arrays.Add(('c', CreateArray(08))); arrays.Add(('d', CreateArray(11))); arrays.Add(('e', CreateArray(14))); arrays.Add(('f', CreateArray(10))); arrays.Add(('g', CreateArray(09)));
foreach var a in arrays.OrderBy(a -> a.Item2.Min()) do begin Println(a.Item1, a.Item2.Min()); end; end.
Вам следовало бы более точно описать, что вам нужно.
Непонятно, что это за условие со следованием. В примере 21106 за цифрой 2 следует 11, но за 11 не следует ничего из перечисленного. Ну или в нем 10 следует за 1, но тогда зачем условия следования для 10..12?
+ ничего не сказано про случайное распределение этих чисел. Так-то программа, которая все время выводит "1", тоже подходит под эти условия
}
const
R: array[1..12,1..5] of integer = (
(4,5,7,9,10), //1
(5,6,8,10,11), //2
(6,7,9,11,12), //3
(1,7,8,10,12), //4
(1,2,8,9,11), //5
(2,3,9,10,12), //6
(1,3,4,10,11), //7
(2,4,5,11,12), //8
(1,3,5,6,12), //9
(1,2,4,6,7), //10
(2,3,5,7,8), //11
(3,4,6,8,9) //12
);
var i,k:integer;
begin
k := 1 + random(12);
for i := 1 to 1 + random(3) do
begin
write(k);
k := R[k,1 + random(5)];
end;
end.
//Если программа не запускается, то обновите версию
function CreateArray(length: integer): array of integer;
begin
var a := new integer[length];
for var i := 0 to length - 1 do
a[i] := Random(0, 100);
// Println(a);
Result := a;
end;
begin
var arrays := new List<(char, array of integer)>();
arrays.Add(('a', CreateArray(15)));
arrays.Add(('b', CreateArray(13)));
arrays.Add(('c', CreateArray(08)));
arrays.Add(('d', CreateArray(11)));
arrays.Add(('e', CreateArray(14)));
arrays.Add(('f', CreateArray(10)));
arrays.Add(('g', CreateArray(09)));
foreach var a in arrays.OrderBy(a -> a.Item2.Min()) do
begin
Println(a.Item1, a.Item2.Min());
end;
end.