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

Вниз

Функция random.   Найти похожие ветки 

 
XPatriot[d.m.b]   (2003-01-09 00:02) [0]

Уважаемые мастера, есть такая задача:
Есть одномерный массив(1-32) нужно заполнить его цифрами от 1 до 32 и чтоб в конечном щете в массиве были числа от 1 до 32 и не одно не повторялось.


 
Neox ©   (2003-01-09 00:43) [1]


var ar: array [1..32] of integer;
b, tmp, tmp1: integer;

begin
Randomize;
for b:=1 to 32 do ar[b] := b;
for b:=1 to 32 do
begin
tmp := ar[b];
tmp1 := Random(32)+1;
ar[b] := ar[tmp1];
ar[tmp1] := tmp;
end;
end;


 
Maksss   (2003-01-09 02:18) [2]

сгенери свой генеретор ,рандом
эта глючная функчия возращает из 30 раз одно и тоже число(на одной смашине)


 
DeMoN-777 ©   (2003-01-09 05:45) [3]

>Maksss (09.01.03 02:18)
>эта глючная функчия возращает из 30 раз одно и тоже число(на одной смашине)

А ты про Randomizе не забыл ? =)


 
Думкин   (2003-01-09 06:37) [4]

Я когда в детстве писал морской бой, то там такую штуку пользовал. Реши сам - это интересно.
Я писал на форте и очень гордился когда получилось - эх, детство золотое.

> Maksss (09.01.03 02:18)
> сгенери свой генеретор ,рандом
> эта глючная функчия возращает из 30 раз одно и тоже число(на
> одной смашине)

Про подобное слышу не первый раз, но ни разу сам не сталкивался.
Randomize - это для разных сеансов, а речь, видимо, шла об одном.


 
XPatriot[d.m.b]   (2003-01-09 14:09) [5]

Думкин, не повериш я год назад такую же функцию для своей проги писал, она работала(соглашусь с табой, интересное занятие}, а вот теперь никак, вроде алгоритм придумал, должно работать, а он виснет.


 
BALU1111 ©   (2003-01-09 14:19) [6]

А если попробывать генерировать массив, и потом проверять на повторения. Если повтор, то в данную цифру надо заменить. Немного требует ресурсов и времени, но у меня работает и не виснет.


 
passm ©   (2003-01-09 15:45) [7]

procedure Swap(var x1, x2: Integer);
var
x: Integer;
begin
x:= x1;
x1:= x2;
x2:= x
end;

...
for i:= 1 to 32 do
a[i]:= i;
for i:= 32 downto 1 do
Swap(a[i], a[Random(i) + 1])
...



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

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

Наверх




Память: 0.48 MB
Время: 0.016 c
14-62734
Fenik
2002-12-29 17:49
2003.01.20
гады-программисты


1-62559
d_oleg
2003-01-08 14:56
2003.01.20
получить иконку приложения


1-62542
zolotov
2003-01-11 01:08
2003.01.20
Создание папки (каталога).


1-62541
БурЖуй
2003-01-11 00:37
2003.01.20
компонеты Exсel


14-62843
Иксик
2003-01-02 13:00
2003.01.20
COM-Port