用于生成特性的通用算法

时间:2018-01-30 22:18:49

标签: algorithm hash checksum

我需要制作算法,采用随机唯一字符串(哈希,无论如何),并从预备列表中生成多个随机特性。

示例:[cat algorithm]

color: white,black,brown
eye-color: blue, green, brown
size: 10,20,30

function algorithm(random_unique_hash){
   ...magic...
   return [color, eye-color, size]
}

归来的猫对她的弦绝对是独一无二的。 字符串在整个字符串列表中是唯一的。 每只猫必须是不同的。 我需要能够从特性中再次制作哈希。

这可能吗?或者它需要以不同的方式工作?我需要制作猫然后制作独特的校验和吗?

从哪里开始?

1 个答案:

答案 0 :(得分:1)

你有三种颜色,三种眼睛颜色和三种尺寸。这意味着你可以制作3 * 3 * 3 = 27种不同的猫。所以random_unique_hash应该是0到26之间的数字。

要从散列中获取属性,请使用除法和模运算符将散列分解为索引,例如

index1 = random_unique_hash % 3
index2 = (random_unique_hash / 3) % 3
index3 = random_unique_hash / 9

然后可以使用索引访问每个属性列表中的正确条目。

要从属性获取哈希,您需要找到属性的索引。然后组合所有索引以重新创建哈希,如此

random_unique_hash = index3 * 9 + index2 * 3 + index1