Форум: "Основная";
Текущий архив: 2002.11.18;
Скачать: [xml.tar.bz2];
ВнизНасчет 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c