const Total = 20; Times = 5; Min = 3; Max = 6; var I, N, Sum: integer; begin Randomize; Sum := 0; Memo1.Clear; for I := 1 to Times - 1 do begin N := Random(Max - Min + 1) + Min; while (Total - N - Sum - (Times - i) * Min < 0) or (Total - N - Sum - (Times - i) * Max > 0) do N := Random(Max - Min + 1) + Min; Sum := Sum + N; Memo1.Lines.Add(Format('%d: %d', [I, N])); end; Memo1.Lines.Add(Format('%d: %d', [Times, Total - Sum])) end;
Times = 5;
Min = 3;
Max = 6;
var I, N, Sum: integer;
begin
Randomize;
Sum := 0;
Memo1.Clear;
for I := 1 to Times - 1 do
begin
N := Random(Max - Min + 1) + Min;
while (Total - N - Sum - (Times - i) * Min < 0) or (Total - N - Sum - (Times - i) * Max > 0) do
N := Random(Max - Min + 1) + Min;
Sum := Sum + N;
Memo1.Lines.Add(Format('%d: %d', [I, N]));
end;
Memo1.Lines.Add(Format('%d: %d', [Times, Total - Sum]))
end;