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

Вниз

генератор   Найти похожие ветки 

 
xman ©   (2003-04-17 15:23) [0]

Как генерировать случайные числа , что бы они не повторялись.
К примеру для создания карточной игры - расздача карт


 
MBo ©   (2003-04-17 15:51) [1]

занеси нужный диапазон чисел в список или массив и выбирай случайный индекс, при этом удаляя число.


 
Anatoly Podgoretsky ©   (2003-04-17 16:09) [2]

Удобно использовать множеста, это входило как класический пример в старые книги по Паскалю. Но иногда удобнее списки


 
Anatoly Podgoretsky ©   (2003-04-17 16:15) [3]

Да и еще не надо выдавать карты случайным образом, надо просто тусовать колоду перед сдачей, как и в реальной жизни.


 
k-man ©   (2003-04-17 16:22) [4]

Может я неправильно понял вопрос, но чтобы числа при генерации
не повторялись, если я не ошибаюсь, нужно использ. randomize, а потом генерировать число.


 
Anatoly Podgoretsky ©   (2003-04-17 16:28) [5]

k-man © (17.04.03 16:22)
randomize не влияет на уникальность последовательности, от только отвечает за выбор этой последовательности, назначая начальное значение RandSeed


 
k-man ©   (2003-04-17 16:32) [6]

2Anatoly Podgoretsky
Разве я буду спорить с мастером :-)
Мотаю на ус...


 
Arch-vile ©   (2003-04-17 16:39) [7]

Приведу пример из моей проги:

CellTrue[i] := ciphers[random(length(ciphers)) + 1];
( ciphers, pos(celltrue[i], ciphers)
Приведу пример из моей проги:

CellTrue[i] := ciphers[random(length(ciphers)) + 1];
delete(ciphers, pos(celltrue[i], ciphers), 1);

если что-то непонятно, я виноват :)


 
Anatoly Podgoretsky ©   (2003-04-17 16:43) [8]

Повтори 36 раз команду Random(36), но randomize использовать обязательно, кроме случаев когда для тестовой отладки требуется каждый раз одна и таже последовательность.


 
Урб   (2003-04-17 18:37) [9]

Еще делают завязку рандома на время(секунды).


 
Плохой человек   (2003-04-17 19:54) [10]

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

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 вся ветка

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

Наверх




Память: 0.49 MB
Время: 0.017 c
3-65362
SER
2003-09-28 23:37
2003.10.20
Работа с MySQL


1-65483
Aleksandr
2003-10-08 16:03
2003.10.20
Как сделать счетчик сессий ActiveX объекта?


7-65656
GuestTM
2003-07-31 03:09
2003.10.20
глюки с ChangeDisplaySettings (DIBENG.DLL) при смене видеорежима!


1-65469
sapsi
2003-10-09 09:54
2003.10.20
Распечатка на принтере


3-65330
Lion
2003-09-28 15:50
2003.10.20
Перенос данных с фокспрошной БД