Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.13;
Скачать: CL | DM;

Вниз

Алгоритм   Найти похожие ветки 

 
Balepa   (2003-10-26 01:37) [0]

Излагаю задачу. Надо чтобы в массиве из 15 эл-ов были цифры 1..15
в разброс (с использованием Random или чего типа того если ето того есть).


 
Ihor Osov'yak ©   (2003-10-26 01:55) [1]

procedure TForm1.Button2Click(Sender: TObject);
const
MaxDim = 15;
var
arrA: array[1..MaxDim] of integer;
i: integer;
tmp: integer;
idx: integer;
s: string;
begin
for i := 1 to MaxDim do
arrA[i] := i;
for i := 2 to MaxDim - 1 do
begin
tmp := arrA[i - 1];
idx := i + Random(MaxDim - i + 1);
arrA[i - 1] := arrA[idx];
arrA[idx] := tmp;
arrA[i] := i;
end;
s := "";
for i := 1 to MaxDim do
s := s + " " + IntToStr(arrA[i]);
ShowMessage(s);
end;

initialization
Randomize;
finalization

end.


Это навскидку.. А вот насколько "качественное" это решение - влом думать..
Посмотри Кнута - там наверника что-то хорошее есть..


 
Balepa   (2003-10-26 02:01) [2]

Забыл дописать надо что бы они не повторялись в это массиве
Если вы это имели ввиду сорри еще не разобрался с кодом времени нет.


 
default ©   (2003-10-26 05:08) [3]


procedure TForm1.Button1Click(Sender: TObject);
var
Mas: Array[1..15] of Byte;
Mn: Set of 1..15;
i: Byte;
S: String;
begin

FillChar(Mas, SizeOf(Mas), 0);
Randomize;
Mn := [];
for i := 1 to 15 do begin
repeat
Mas[i] := Random(15) + 1;
until not (Mas[i] in Mn);
Mn := Mn + [Mas[i]];
end;
for i := 1 to 15 do S := S + " " + IntToStr(Mas[i]);
ShowMessage(S)

end;


 
default ©   (2003-10-26 05:10) [4]

FillChar(Mas, SizeOf(Mas), 0); - это не нужно



Страницы: 1 вся ветка

Текущий архив: 2003.11.13;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.03 c
14-41913
Омлет
2003-10-19 15:40
2003.11.13
Именинники 19 октября!


1-41668
onix
2003-10-24 18:05
2003.11.13
Не об яснимый AV ?????


1-41259
GIL
2003-10-31 16:45
2003.11.13
пишет ошибку присвоения


1-41449
gestern
2003-10-29 12:15
2003.11.13
db


4-42278
bfg1000ke
2003-09-18 13:09
2003.11.13
Создание кнопки с картинкой.