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

Вниз

Насчет randomiz а....   Найти похожие ветки 

 
nUcL34r ©   (2002-11-08 03:12) [0]

Доброго времени суток всем!
Пытался решить следующую задачу но ничего не вышло:
Вобщем даны числа от 1 до 10, требуется записать эти числа в массив в произвольном порядке и чтоб не повторялись....
Помогите кто может, pls......


 
Николай Быков ©   (2002-11-08 04:22) [1]

на Паскале это так

uses crt;
const
n=10;
var
massiv:array [1..n] of integer;
i:integer;
begin
clrscr;
randomize;
for i:=1 to n do
begin
massiv[i]:=random(10)+1
write(massiv[i]:4);
end;
writeln;
textcolor(31);
writeln("Press any key");
readkey;
end.


 
Николай Быков ©   (2002-11-08 04:23) [2]


> чтоб не повторялись....

Упс. Забыл сделат проверку, чтобы не повторялись. Щас напишу


 
Николай Быков ©   (2002-11-08 05:13) [3]

Вот придумал!
Когда ты заполнил массив, то просто прогоняешь его до того как найдешь повторяющийся элемент. Присваиваешь ему random(10)+1. Опять проверяешь.


 
Николай Быков ©   (2002-11-08 05:26) [4]

Вот так еще можно:

Присваиваешь random(10)+1 любой левой переменной. Проверяешь на совпадение. Если совпадает, то присваиваешь заново и проверяешь опять. Если не совпало, то присваиваешь эту переменную элементу массива


 
Almaz ©   (2002-11-08 05:29) [5]


> Николай Быков © (08.11.02 05:13)
> Вот придумал!
> Когда ты заполнил массив, то просто прогоняешь его до того
> как найдешь повторяющийся элемент. Присваиваешь ему random(10)+1.
> Опять проверяешь.

Далеко не оптимальное решение. Представляете, сколько циклов может быть прокручено до получения результата :)))

Предложу такой способ:

var
Massiv: array [0..9] of Integer;

procedure Mix;
var
I, T, Rnd: Integer;
begin
// Заполняем массив
for I := 0 to 9 do Massiv[I] := I + 1;
// Перемешиваем
Randomize;
for I := 0 to 9 do
begin
Rnd := Random(10);
T := Massiv[I];
Massiv[I] := Massiv[Rnd];
Massiv[Rnd] := T;
end;
end;


Скорее всего он тоже не оптимален, но по крайней мере тут всего 2 цикла :)

Удачи.



 
Николай Быков ©   (2002-11-08 05:31) [6]

Ну да. Можно было и так сделать, я до таких хитростей редко додумываюсь, но тоже идея.

Еще можно было подключать разные виды сортировки ( http://algolist.manual.ru/) для этого дела



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

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

Наверх




Память: 0.48 MB
Время: 0.034 c
8-59294
Сергей Ф.В.
2002-07-29 20:49
2002.11.18
Сдвиг попиксельно в лево в PaintBoxe


14-59368
vajo
2002-10-29 08:05
2002.11.18
MPEG4


14-59352
iNew
2002-10-29 07:41
2002.11.18
Есть ли книга Рихтера в электоронном виде?


1-59174
Ag2002
2002-11-09 11:16
2002.11.18
Логика


1-59145
Тень
2002-11-08 17:24
2002.11.18
Как сохронить текст в TStringGrid?