Главная страница
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.021 c
14-60333
Начинающий_
2003-06-02 05:21
2003.06.19
Срочно алгоритм сортировки списка


14-60380
Asrw
2003-06-02 20:47
2003.06.19
100+2 и т.д


3-60084
YuraKiller
2003-05-28 21:32
2003.06.19
Как с клиента создать пользователя?


3-60079
Filat
2003-05-19 09:27
2003.06.19
IBTable1.Filtered - Дата1 - Дата2 ?


14-60352
TRh
2003-05-28 15:42
2003.06.19
Восстанавливаем исходники