Преобразовать произвольную строку для плавания в диапазоне 0 и 1 - PullRequest
0 голосов
/ 22 августа 2011

Я хотел бы преобразовать произвольную строку (или для упрощения обработки хеш-строки) в число с плавающей точкой от 0 до 1. Цель - создать функцию, которая возвращает цветовой код для данной строки, чтобы пользователь всегдавидит тот объект в том же цвете, который генерируется из его имени.

OP включил этот код в комментарии (включен сюда для удобства чтения):

var hashed:String = MD5.hash(input); // creates a 32 long hexa 
const max:Number = Number("0xffffffffffffffffffffffffffffffff"); 
var hashedHexa:Number = Number("0x" + hashed); 
return hashedHexa/max;

1 Ответ

1 голос
/ 22 августа 2011

Поскольку вы просите нас создать алгоритм;Есть много способов сделать это.Я мог бы попробовать что-то с charCodeAt методом.Концептуально что-то вроде этого:

public function stringToDecimal(value:String):Number{
 var results : Number = 0;
 // loop over each character in string
 for(var index:int = 0;index< value.length; index++){
   // this code turns each character in the string to a number and adds them all together
   // divide by 100 b/c we know all ASCII charcodes will be between 0 & 127. This will give 
   // a decimal result
   results += (value.charCodeAt(index)/100);
 }
 return results
}

Этот алгоритм не гарантирует, что каждая строка вернет уникальный номер;но это не было одним из ваших требований.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...