Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Совпадение при генерации случайных чисел.

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
armancho7777777 Супермодератор
Отправлено: 14 Апреля, 2011 - 15:14:09
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Здравствуйте все!
Вопрос к опытным экспертам?
Вероятно ли совпадение чисел при генерации с помощью ниже приведённой функции ?

PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. function generate($length = 4){
  4.         $chars = '123456789';
  5.         $numChars = strlen($chars);
  6.         $string = '';
  7.         for ($i = 0; $i < $length; $i++) {
  8.         $string .= substr($chars, mt_rand(1, $numChars) - 1, 1);
  9. }
  10.   return $string;
  11. }
  12.  
  13. for ($a = 1; $a <= 1000; $a++) {
  14.  
  15. $id_nam = generate();
  16.  
  17. echo $id_nam."<br>";
  18.  
  19. }
  20.  
  21.  

(Добавление)
Отвечаю сам на свой вопрос: да, есть. Особенно в большом диапазоне.
Если только всё в массив загнать, и обработать с помощью array_unique($array).
 
 Top
destus
Отправлено: 14 Апреля, 2011 - 15:34:49
Post Id


Гость


Покинул форум
Сообщений всего: 107
Дата рег-ции: Апр. 2011  


Помог: 4 раз(а)




Всё возможно. Даже получить подряд 13 одинаковых карт в игре бридж, где вероятность такого события меньше чем то, что завтра будет конец света.
Вообщем, Теории Вероятностей никто не отменял )

(Отредактировано автором: 14 Апреля, 2011 - 15:35:35)

 
 Top
EuGen Администратор
Отправлено: 14 Апреля, 2011 - 15:35:00
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Пример -
uniqid(rand(),1);


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
OrmaJever Модератор
Отправлено: 14 Апреля, 2011 - 15:38:04
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Вероятность того что из строка из 4 цыфр повторится 6561. Это большая вероятность! Лутше делать строку из символов a-z 0-9 длиной 10+


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
armancho7777777 Супермодератор
Отправлено: 14 Апреля, 2011 - 15:46:01
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




EuGen пишет:
Пример -
uniqid(rand(),1);

Спасибо EuGen, то что надо) Ни одного совпадения) А зачем нужен префикс - 1 ?

(Отредактировано автором: 14 Апреля, 2011 - 16:01:50)

 
 Top
EuGen Администратор
Отправлено: 14 Апреля, 2011 - 16:00:28
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)






-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
armancho7777777 Супермодератор
Отправлено: 14 Апреля, 2011 - 16:04:37
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




OrmaJever пишет:
Вероятность того что из строка из 4 цыфр повторится 6561. Это большая вероятность! Лутше делать строку из символов a-z 0-9 длиной 10+

Забыл 4ку исправить на 6ку. Но все равно есть совпадения.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB