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

Вниз

Помогите как можно сделат генератор случайных чисел   Найти похожие ветки 

 
Xmen   (2003-06-06 13:34) [0]

Помогите как можно сделат генератор случайных чисел, каторый генирировал случайных чисел и не повторялис числа, типа 2,3,2,4,4,1,5 а были 2,3,7,5,9,1.


 
Palladin ©   (2003-06-06 13:36) [1]

прямо неделя случайных чисел какаято...
некое шевеление извилин в сосокупности с random, randomize и справкой дадут тебе алгоритм перемешивания исходной последовательности...


 
DrPass ©   (2003-06-06 13:47) [2]

>Xmen
Записывай:
6,3,9,2,5,7,8,4,1


 
Digitman ©   (2003-06-06 13:58) [3]


> Xmen


помогаю)

организуешь TList, элементами которого будут указатели на структуру

TRange = packed record
LowBnd: DWord;
HighBnd: DWord;
end;

изначально добавляешь в List одну структуру с
LowBnd = нижняя_граница_диапазона_генерируемых_случ_чисел
HighBnd = верхняя_граница_диапазона_генерируемых_случ_чисел

всякий раз при запросе очер.случ.числа вызываешь i : = Random(List.Count) , берешь i-й эл-т списка, получаешь Random-число в диапазоне [LowBnd..HighBnd], делишь исх.диапазон на два (исключая уже выбранное из диапазона число), по необходимости добавляешь/удаляешь в List эл-ты, указывающие на оставшиеся пустые/непустые диапазоны. И так - до тех пор пока List.Count > 0


 
Digitman ©   (2003-06-06 14:08) [4]


> Xmen


помогаю)

организуешь TList, элементами которого будут указатели на структуру

TRange = packed record
LowBnd: DWord;
HighBnd: DWord;
end;

изначально добавляешь в List одну структуру с
LowBnd = нижняя_граница_диапазона_генерируемых_случ_чисел
HighBnd = верхняя_граница_диапазона_генерируемых_случ_чисел

всякий раз при запросе очер.случ.числа вызываешь i : = Random(List.Count) , берешь i-й эл-т списка, получаешь Random-число в диапазоне [LowBnd..HighBnd], делишь исх.диапазон на два (исключая уже выбранное из диапазона число), по необходимости добавляешь/удаляешь в List эл-ты, указывающие на оставшиеся пустые/непустые диапазоны. И так - до тех пор пока List.Count > 0


 
Sandman25 ©   (2003-06-06 15:14) [5]

var Arr: array [1..N] of integer;
i: integer;
RandomNumber, RandomIndex: integer;
// инициализация
for i := 1 to N do
Arr[i] := i;
// генерация
for i := N downto 1 do
begin
RandomIndex := random(i)+1;
RandomNumber := Arr[RandomIndex];
Arr[RandomIndex] := Arr[i];
... // использование случайного числа RandomNumber
Arr[i] := RandomNumber { если есть желание запоминать последовательность }
end;


 
Xmen   (2003-06-06 15:29) [6]

>>Sandman25 © (06.06.03 15:14)
у меня N= 10.

что они делают?
>> RandomIndex := random(i)+1;
>> RandomNumber := Arr[RandomIndex];


а ёще какие методы есть сделать такую прогу.



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

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

Наверх




Память: 0.48 MB
Время: 0.02 c
14-60324
vidiv
2003-06-03 12:27
2003.06.19
Как передать от своей програмы до своей некоторый файл по сети...


1-60193
Xeon
2003-06-04 16:41
2003.06.19
Реестр


6-60307
Jaguar
2003-04-08 14:32
2003.06.19
Proxy-сервер, FTP-протокол


3-60041
Yan
2003-05-26 00:52
2003.06.19
TDataSetProvider


14-60315
DMN
2003-05-30 08:26
2003.06.19
Работа с файлами