Показать сообщение отдельно
Старый 06.01.2012, 10:17   #131
LarsKort
Пущен по доске
Polski Knight
 
Регистрация: 17.10.2008
Адрес: Mazovia, Polska Любимые ОС: Linux-Based
Сообщений: 2,161
Нация: Франция
Пол: Мужской
Офицеры Корабли
Репутация: 265

Награды пользователя:

По умолчанию Re: Новогодняя Лотерея: 20+12!

Charles Wayne, зачем писать написанное? о.О функция rand() уже существует, я всего-лишь отсеял возможность генерации уже имеющихся чисел.

Допустим для билета Х сгенерировано число N, значит N не может больше быть сгенерировано для других билетов. (notAllowed[N] = true);

А вот сама генерация:
Попытка 1:

PHP код:
    // фёрст генерейшен
    
int num rand() % cnt 1
Если попала в нот алловед - перебираем, пока не будет notAllowed[N] = false;
Из-за малого количества чисел (32) такое допустимо, но использовать данный метод, скажем с 5000000 числами - не разумно.


PHP код:
    // пока не встретим доступное число, пробуем
    // ну да, не рационально, но я не нашел другого способа
    
while(notAllowed[num])
    {
        
num = (rand()%cnt+1); 
    } 
LarsKort вне форума
Пользователь сказал cпасибо:
Charles Wayne (06.01.2012)