我有一些唯一的字符串需要Map到数字1,2,3。如何从一个随机的ascii字符串中计算一个简单的数字1,2,3,这样大约33. 3%的字符串会返回1,33. 3%的字符串会返回2,33. 3%的字符串会返回3?该字符串可以是XYZDA、JKLLK、DSAJKL、DASDSA之类的任何字符串。例如:DASDSA可能始终返回1。JKLLK始终可以返回2。等等。是否可以用for循环和MOD 3一起计算字母表ASCII值,或者是否有更快的哈希算法?在PHP中如何实现?
vsnjm48y1#
因此,ASCII字母表有52个字符(A-Z和a-z)。如果我们将这52个字符分成3个部分,我们将ASCII字母表分为3个部分(每个部分占33.33%)。我们称A、B、C为三个部分。随机抽取一个字母,A区、B区和C区的平均得分分别为33.33%、33.33%和33.33%。因此,给定一个随机字符串,如果我们计算属于部分A、B和C的字符数(假设在随机字符串中,部分A有2个字符,部分B有1个字符,部分C有4个字符),并取最大值(4,部分C),则这种情况的概率接近33.33%现在我们MapA -〉1号,B -〉2号,C-〉3号.这个随机字符串(因为它有C部分的4个字符)将Map到一个3显然,这取决于数据集,但我认为这是一个很好的方法。如果我在某个方面说错了,或者我没有解释清楚,请告诉我
1条答案
按热度按时间vsnjm48y1#
因此,ASCII字母表有52个字符(A-Z和a-z)。如果我们将这52个字符分成3个部分,我们将ASCII字母表分为3个部分(每个部分占33.33%)。
我们称A、B、C为三个部分。
随机抽取一个字母,A区、B区和C区的平均得分分别为33.33%、33.33%和33.33%。
因此,给定一个随机字符串,如果我们计算属于部分A、B和C的字符数(假设在随机字符串中,部分A有2个字符,部分B有1个字符,部分C有4个字符),并取最大值(4,部分C),则这种情况的概率接近33.33%
现在我们MapA -〉1号,B -〉2号,C-〉3号.
这个随机字符串(因为它有C部分的4个字符)将Map到一个3
显然,这取决于数据集,但我认为这是一个很好的方法。
如果我在某个方面说错了,或者我没有解释清楚,请告诉我