![]() |
|
||||||||||
|
|||||
|
Регистрация: Jul 2005
Сообщений: 135
|
Необходимо получить из ника число от 0 до 1. Чтобы затем из массива цветов брать нужный и закрашивать им ник.
Я пробовал оборачивать ник в md5, затем разбивать на символы, и потом складывать их шестнадцатиричный аналог. Число меньше 226 мне получить не удалось, так же как и дойти до максимального - 480. Поэтому такой способ не работает. Пробовал спросить у гугла - не помог, потому обращаюсь к вам. Может кто знает есть ли такие алгоритмы, или у кого есть идеи по этому поводу?
__________________
хоумпага |
|
|||||
|
4AM Games
|
Вам нужно просто дать никам разные цвета, и чтобы было как бы рандомно но постоянно?
Ну можно по модулю первого и последнего символа например, тоесть если представить что первый символ это число в диапазоне от 0 до 36 (10 цифр и 26 латинских букв). Вычесть из первого, последнее, и если модуль четный то один цвет, если нечет то другой.
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^ |
|
|||||
|
Регистрация: Jul 2005
Сообщений: 135
|
Вот отлично сказано "как бы рандомно но постоянно"
В вашем варианте я получу только либо 0 либо 1, а мне нужно от 0 до 1. То есть имеем массив с приятными глазу цветами, скажем их будет 200. Затем применяем какой-то хитрый алгоритм над ником, и получаем число от 0 до 1, умножаем его на длину массива, округляем и получаем индекс из массива цветов. Это фактически хеш от ника, в пределах 0-1. В вашем алгоритме учитываются только крайние символы, это не подходит для точной идентификации.
__________________
хоумпага |
|
|||||
|
4AM Games
|
от 0 - 1 бесконечное число чисел, у меня по высшей математике была четверка, но должна была быть двойка. Скажите точный диапазон, тогда смогу посоветовать. 200, 300 и тд =)
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^ |
|
|||||
|
Math.random()*200
|
|
|||||
|
Ну, как пример:
1) каждый символ - в число. Чтобы был действительно рандом - скажем, A=2, B=8, C=1, D=15 etc 2) складываем все эти числа воедино 3) делим, на 10, пока результат >1
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
стервочка (я мужик)
|
госпади ... да кучу алгаритмов придумать можно:
сходу самый в лоб: задайте каждому символу значение от нуля до одного. складываете все числа и делите на длину строки. только надо грамотно расставлять числа по отношению к назначению символа, так как получаете среднее число, и оно будет стремиться к 0.5. |
|
|||||
|
Modus ponens
|
Я думаю, что задача в общем случае решения не имеет... в смысле, вариантов цветов есть всего 0xFFFFFF, а ников может быть гораздо больше... что-то мне подсказывает, что это то ли бином Ньютона, то ли еще как-то это называлось...
![]() Т.е. задача решаема только при условии, что ники в ASCII кодировке не длиннее 3 букв, или в юникодной не длиннее 2 букв...
__________________
Hell is the possibility of sanity |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:06. |
|
|
« Предыдущая тема | Следующая тема » |
|
|