0

英数字の文字列値があります。各文字列を整数値で表す必要があります。

結果の整数は 30 から 150 の間でなければなりません。
複数の文字列が同じ整数値を持つことができます。
特定の文字列は、すべての実行で同じ整数値を与える必要があります。
暗号は重要ではなく、文字列値は価値がありません。
より速い計算が優先されます。
すべての整数が同じ値であってはなりません。

編集:試してみintval()ましたが、ゼロになりました。それから試しmd5てみると、sha1長い文字列が得られました。やってみbase_convertましたが出来ませんでした。

4

2 に答える 2

0

@dtechの回答を使用して、次のように関数を完成させました。

public function convertStringToInteger($string, $min, $max, $dateDepended=FALSE) {
    $interval = $max-$min;
    if ($dateDepended) {
        $addMore=strtotime("today");
    } else {
        $addMore=0;
    }
    return ( (crc32($string)+$addMore) % $interval ) + $min;
}

convertStringToInteger("myword",30,150,TRUE);
于 2013-05-17T16:57:58.730 に答える