Хотелось бы написать функцию, которая возвращает "полурандомное" число в диапазоне от 0 до 9 в зависимости от текстового входного параметра.
"Полурандомным" я называю число, которое генерится рандомно, но для конкретного набора символов оно всегда тоже самое.
То есть например, если функция get_polurandom("мама") возвращает например 5, то при входном параметре "мама" оно всегда будет именно 5, если get_polurandom("папа") возвращает скажем 7 - то это всегда 7 для входного параметра "папа".
Сам не php-программист, крутится в голове что это как-то несложно очень, но не могу понять как это сделать.
Заранее спасибо.
1. valet - 21 Июля, 2012 - 13:23:33 - перейти к сообщению
2. SAD - 21 Июля, 2012 - 13:28:39 - перейти к сообщению
я бы сложил порядковые номера букв входящего текста в алфавите, а потом поделил бы на кол-во букв в слове, а остатком от деления будет наше полурандомное число
3. Hawkmoth - 21 Июля, 2012 - 13:34:46 - перейти к сообщению
valet пишет:
"Полурандомным" я называю число, которое генерится рандомно, но для конкретного набора символов оно всегда тоже самое.
Напоминает хеш. Может, хешировать (например, той же md5), а потом тащить из нее первую цифру.
4. SAD - 21 Июля, 2012 - 13:36:30 - перейти к сообщению
как вариант
если нет цифр, то возвращать 0
если нет цифр, то возвращать 0
5. valet - 21 Июля, 2012 - 13:39:24 - перейти к сообщению
SAD, Hawkmoth, спасибо. Хорошие идеи. Сейчас буду что-то пробовать.
Больше нравится с хешем, не уверен что с вариантом от SAD мы гарантируем равномерное распределение (могу ошибаться), да и с хешем как-то попроще смотрится.
Больше нравится с хешем, не уверен что с вариантом от SAD мы гарантируем равномерное распределение (могу ошибаться), да и с хешем как-то попроще смотрится.
6. valet - 21 Июля, 2012 - 15:40:25 - перейти к сообщению
Может кому-то пригодится поэтому запощу тут как я это сделал.
получать такое значение можно так например:
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- $matches = get_polurandom("текст");
- echo $matches[0][0];
- echo $matches[0][1];
- //...