Главная страница
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.48 MB
Время: 0.023 c
14-1094504553
Knight
2004-09-07 01:02
2004.09.26
Что ж это за полоса такая...


3-1093583719
Desperado
2004-08-27 09:15
2004.09.26
ошибка в IBAlloc


14-1094449787
cyborg
2004-09-06 09:49
2004.09.26
Замкнутый круг


14-1094332002
olookin
2004-09-05 01:06
2004.09.26
Вы придете в дом...


3-1093937123
Valera
2004-08-31 11:25
2004.09.26
SQL-запрос