Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.014 c
14-60367
Lola
2003-06-02 14:00
2003.06.19
Специалистам в Аccess


14-60389
vidiv
2003-05-30 06:16
2003.06.19
Как из ATX блока достать 9 вольт (800ма, AC{переменный})?


14-60404
Думкин
2003-06-03 12:42
2003.06.19
Цивилизация и .... мы.


14-60411
Yakudza
2003-06-02 17:29
2003.06.19
Малколм Макдауэлл


6-60302
Kedis
2003-04-18 14:24
2003.06.19
Отправка писем




   Наверх