Главная страница
    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.45 MB
Время: 0.008 c
6-60310
vi7777
2003-04-12 14:50
2003.06.19
Как очистить память после WebBrowser


3-60016
Vick
2003-05-27 12:36
2003.06.19
Идентификация пользователя в базе MSSQL


1-60158
Jeka.
2003-06-06 08:00
2003.06.19
Закрытие файла


3-60067
Niki
2003-05-28 14:12
2003.06.19
EmptyTable для ADOTable


1-60250
Danil%%
2003-06-05 21:41
2003.06.19
Вопрос о строке в файле





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский