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]   

> Без описания
valet
Отправлено: 21 Июля, 2012 - 13:23:33
Post Id


Новичок


Покинул форум
Сообщений всего: 11
Дата рег-ции: Июль 2011  


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




Хотелось бы написать функцию, которая возвращает "полурандомное" число в диапазоне от 0 до 9 в зависимости от текстового входного параметра.
"Полурандомным" я называю число, которое генерится рандомно, но для конкретного набора символов оно всегда тоже самое.
То есть например, если функция get_polurandom("мама") возвращает например 5, то при входном параметре "мама" оно всегда будет именно 5, если get_polurandom("папа") возвращает скажем 7 - то это всегда 7 для входного параметра "папа".

Сам не php-программист, крутится в голове что это как-то несложно очень, но не могу понять как это сделать.
Заранее спасибо.
 
 Top
SAD
Отправлено: 21 Июля, 2012 - 13:28:39
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


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




я бы сложил порядковые номера букв входящего текста в алфавите, а потом поделил бы на кол-во букв в слове, а остатком от деления будет наше полурандомное число

(Отредактировано автором: 21 Июля, 2012 - 13:30:36)

 
 Top
Hawkmoth
Отправлено: 21 Июля, 2012 - 13:34:46
Post Id


Посетитель


Покинул форум
Сообщений всего: 329
Дата рег-ции: Янв. 2012  


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




valet пишет:
"Полурандомным" я называю число, которое генерится рандомно, но для конкретного набора символов оно всегда тоже самое.


Напоминает хеш. Может, хешировать (например, той же md5), а потом тащить из нее первую цифру.
 
 Top
SAD
Отправлено: 21 Июля, 2012 - 13:36:30
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


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




как вариант

если нет цифр, то возвращать 0

(Отредактировано автором: 21 Июля, 2012 - 13:36:51)

 
 Top
valet
Отправлено: 21 Июля, 2012 - 13:39:24
Post Id


Новичок


Покинул форум
Сообщений всего: 11
Дата рег-ции: Июль 2011  


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




SAD, Hawkmoth, спасибо. Хорошие идеи. Сейчас буду что-то пробовать.
Больше нравится с хешем, не уверен что с вариантом от SAD мы гарантируем равномерное распределение (могу ошибаться), да и с хешем как-то попроще смотрится.
 
 Top
valet
Отправлено: 21 Июля, 2012 - 15:40:25
Post Id


Новичок


Покинул форум
Сообщений всего: 11
Дата рег-ции: Июль 2011  


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




Может кому-то пригодится Улыбка поэтому запощу тут как я это сделал.

PHP:
скопировать код в буфер обмена
  1.         public function get_polurandom($text)
  2.         {
  3.                 $result = md5($text);
  4.                 preg_match_all('/\d/', $result, $matches);
  5.                 return $matches;
  6.         }
  7.  

получать такое значение можно так например:
PHP:
скопировать код в буфер обмена
  1. $matches = get_polurandom("текст");
  2. echo $matches[0][0];
  3. echo $matches[0][1];
  4. //...
  5.  
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB