Перейти к содержимому



Генерация случайный неповторяющихся чисел

#1

Поделиться сообщением #1



BaCo

BaCo
  • Неактивные
  • 103 сообщений
  • Репутация: 0
0

Отправлено 24 Апрель 2010 - 13:02

Можете ли предложить функцию, которая будет генерировать случайное число и чтобы при следующем вызове функции это число не повторялось?

 

 

  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85
Советую обратить внимание на следующее:
  1. Выведение случайного объекта
  2. Посоветуйте нормальный генератор текста
  3. Код вывода случайных новотей
  4. Скрипт вывода рандомных цитат
  5. Онлайн генератор паролей

#2

Поделиться сообщением #2



Banderas

Banderas
  • Пользователь
  • 1 168 сообщений
  • Репутация: 1

Отправлено 24 Апрель 2010 - 21:09

юзай функцию rand(0, 10) генерирует числа от 0 до 10.
  • 0

I'm web-developer 

Magento one love!



#3

Поделиться сообщением #3



gaaarfild

gaaarfild
  • Неактивные
  • 596 сообщений
  • Репутация: 0

Отправлено 24 Апрель 2010 - 21:50

Помещай число куда нибудь. Если за одно выполнение скрипта, то в переменную. Если разные, то в файл или в БД. Потом проверяешь через while()
  • 0

#4

Поделиться сообщением #4



Banderas

Banderas
  • Пользователь
  • 1 168 сообщений
  • Репутация: 1

Отправлено 24 Апрель 2010 - 22:29

2*gaaarfild* я думаю что это будет хорошо напрягать систему, всё-таки лишний запрос в БД, а ещё + если чисел будет 10 000 ? проверка займёт много времени...
  • 0

I'm web-developer 

Magento one love!



#5

Поделиться сообщением #5



gaaarfild

gaaarfild
  • Неактивные
  • 596 сообщений
  • Репутация: 0

Отправлено 24 Апрель 2010 - 22:43

файл тогда. я других вариантов не придумал.
  • 0

#6

Поделиться сообщением #6



ZiTosS

ZiTosS
  • Неактивные
  • 5 148 сообщений
  • Репутация: 8

Отправлено 24 Апрель 2010 - 23:40

BaCo, скажите для чего вам это. А так, как уже сказали, либо глобальный массив(если числа не должны повторяться за раз обработки), либо сессии,бд или файлы(если числа не должны повторяться при сеансе)
  • 0

#7

Поделиться сообщением #7



surfer

surfer
  • Заблокированные
  • 1 956 сообщений
  • Репутация: 71

Отправлено 25 Апрель 2010 - 08:16

оттолкнуться можно остюда, http://sqlinfo.ru/fo...id=11053#p11053
  • 0

#8

Поделиться сообщением #8



BaCo

BaCo
    Topic Starter
  • Неактивные
  • 103 сообщений
  • Репутация: 0

Отправлено 25 Апрель 2010 - 09:32

Мне это нужно, чтобы из БД выбирались случайные блоки с рекламой и они не повторялись...
  • 0

#9

Поделиться сообщением #9



Banderas

Banderas
  • Пользователь
  • 1 168 сообщений
  • Репутация: 1

Отправлено 25 Апрель 2010 - 10:27

2*BaCo* тогда всё просто!
В одной переменной минимальное количество блоков, а в другой - максимальное. И рандомишь с минимального до максимального. Типа так rand($min, $max);
  • 0

I'm web-developer 

Magento one love!



#10

Поделиться сообщением #10



gaaarfild

gaaarfild
  • Неактивные
  • 596 сообщений
  • Репутация: 0

Отправлено 25 Апрель 2010 - 11:51

Нет. Тут, как раз таки они могут повторяться.
Лучше тогда добавить доп поле в БД. в таблице рекламы. и показанные уже обозначать однеркой. Показывать только непоказанные.
  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru