Главная страница
    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
1-60110
Back
2003-06-06 10:48
2003.06.19
Как отобразить окно поверх всех окон всех работающих приложений


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


1-60185
Maxim Pshevlotsky
2003-06-05 09:09
2003.06.19
Выгрузка ActiveX Library


7-60428
YDV
2003-04-13 19:26
2003.06.19
запуск в определенный момент времени !?


1-60205
Erik
2003-06-05 10:43
2003.06.19
Опрос свех инстанций com сервера.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский