是否有可能使用一个字符串作为一个实例随机种子? [重复]

问题描述 投票:0回答:2

这个问题已经在这里有一个答案:

我有一个字符串值,然后我想使用初始化字符串作为种子的随机类?

是否有可能做到这一点,如果是的话怎么办?

该字符串不仅包括ASCII的。我能有任何UTF-8符号。

java android
2个回答
2
投票

您可以使用String.hashCode的实施,使用longint而不是差异

static long stringToSeed(String s) {
    if (s == null) {
        return 0;
    }
    long hash = 0;
    for (char c : s.toCharArray()) {
        hash = 31L*hash + c;
    }
    return hash;
}

这样,你得到一个long,但当然也有不同的Strings可以产生相同的种子。根据您输入使用Strings,可以用比别人更高的概率会出现一些种子。


0
投票

你可以做的ASCII值,或UTF-8符号的东西,他们都写的号码,加在一起。或者,如果你需要,你可以选择例如参见以下维基百科页面更先进的“散列函数”:http://en.wikipedia.org/wiki/List_of_hash_functions

© www.soinside.com 2019 - 2024. All rights reserved.