我需要根据多个种子值生成随机数,需要一些关于如何执行此操作的想法。
示例情况:假设您正在编写程序生成的科幻游戏,需要在玩家飞入某个太阳系时创建行星(大小,类型,资源等)。你有一个游戏ID,以及行星的X,Y,Z坐标。现在给随机数发生器喂什么?当然,我不能仅仅添加数字,因为行星(1,2,3)与行星(3,2,1)完全相同。编码员应该做什么?
答案 0 :(得分:2)
假设每次对于坐标集总是需要相同的种子:只需用MD5或其他一些哈希算法加密一个连接的字符串。 md5(“1,2,3”)与md5(“3,2,1”)不同。或者,如果您需要一个纯数字字符串,请使用类似:“第一个数字* 9”+“第二个数字* 8”+“第三个数字* 7”,这将为您提供更多种类。
如果不这样做,请使用上述方法和随机数。
在这种情况下,伪随机就足够了。