Главная страница
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.029 c
6-59310
EgnA
2002-09-23 11:36
2002.11.18
Как реализовать параметр в ActiveX


7-59446
Мак
2002-09-18 05:26
2002.11.18
Помогите !!!


3-59024
mas_alexey
2002-10-29 18:35
2002.11.18
Dbgrid


7-59441
Maxi-mov
2002-09-15 13:36
2002.11.18
Как можно


1-59220
Мутень
2002-11-06 16:50
2002.11.18
Как обращаться к свойствам и перехватывать события....