Форум: "Основная";
Текущий архив: 2003.06.19;
Скачать: [xml.tar.bz2];
ВнизПомогите как можно сделат генератор случайных чисел Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c