Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.26;
Скачать: CL | DM;

Вниз

Алгоритм случайного выбора без повтора   Найти похожие ветки 

 
AntiGen   (2004-09-11 13:04) [0]

Может знает кто такой алгоритм. Это что-то вроде выбора песен из плейлиста,например, в WinAmp или WMP. Причем там всегда возможен переход от одной песни к другой в любом направлении (назад, вперед) с той же неповторяющейся последовательностью.


 
Profi ©   (2004-09-11 13:06) [1]

AntiGen   (11.09.04 13:04)
Создаешь массив случайных чисел (как сделать так, чтобы не повторялись, сам догадаешься) и все!


 
Yuri Btr ©   (2004-09-11 13:13) [2]

Если используется случайный выбор, то не имеет значения - вперед или назад - вы всегда выбираете новое случайное число.
Например у вас есть список песен. Они идентифицируются по позиции в листе. Тогда выбор следующей будет
Random(Макс. позиция в листе)
В создании формы поставь Randomize
и все.


 
AntiGen   (2004-09-11 13:14) [3]

Точно! :)) с утра голова совсем не работает! Спасибо за помощь!


 
AntiGen   (2004-09-11 13:17) [4]

2 Yuri Btr: в том то и дело, что хочется вперед\назад. WinAmp запоминает позиции. Помоему Profi тут правильный выход подсказал.


 
Yuri Btr ©   (2004-09-11 13:21) [5]

to AntiGen
"WinAmp запоминает позиции"
И правда, запоминает... Однако мне всегда казалось что наоборот :)


 
Alekc   (2004-09-11 14:45) [6]

Создаёшь два списка - в один суёшь все песни, потом их оттуда выдёргиваешь рандомом по одной и добавляешь во второй (удаляя из первого). Второй играешь с начала до конца. Когда он (второй) закончится - повторяешь операцию :)) Вперёд-назад - последовательный переход по второму.


 
Mihey_temporary ©   (2004-09-11 19:39) [7]

Заполнение массива случайными неповторяющимися числами:


procedure FillArray(var A: array of Integer);
var

I, S, R: Integer;
begin

for I := 0 to High(A) do A[I] := I;
for i := High(A) downto 0 do begin
R := Random(I);
S := A[R]; A[R] := A[I]; A[I] := S;
end;
end;



Страницы: 1 вся ветка

Текущий архив: 2004.09.26;
Скачать: CL | DM;

Наверх




Память: 0.45 MB
Время: 0.045 c
4-1092319395
почемука
2004-08-12 18:03
2004.09.26
Послать сообщение о перерисовке всем окнам


1-1094750155
Ajax
2004-09-09 21:15
2004.09.26
Изменение значения локальных переменных извне


3-1093424056
IGray
2004-08-25 12:54
2004.09.26
Посоветуйте плиз DBGrid с мультиселектом и сортировкой


14-1094060278
lipskiy
2004-09-01 21:37
2004.09.26
Как из IE вычистить бар, который сам туда встроился?


6-1089621374
electric
2004-07-12 12:36
2004.09.26
TServerSocket & TClientSocket





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