【发布时间】:2021-09-03 00:51:10
【问题描述】:
我正在寻找一个随机数生成器,我可以使用种子创建它并接受两个输入 x 和 y 来生成数字。每次我对相同的种子使用相同的输入时,我都需要相同的数字。
我正在使用它在坐标网格中随机分配纹理,因此我需要它每次都相同。所以每次我在同一个种子中的 x = 100, y = 120 时,我都需要相同的随机数,以便在该位置分配相同的纹理。
我想我为什么要寻找某种基本的程序生成技术。我不能使用 Random 类,因为它给了我一个数字流,我必须使用 nextInt() 直到我得到我想要的。然后,如果我需要我通过的数字之一,我将不得不重新开始。如果我在一个有 1,000,000 块瓷砖的空间中远离原点,这将是一个大问题。
【问题讨论】:
-
随机和相同的不行,你要求生成随机数但希望它在条件下是相同的。
-
听起来是不是很像一种哈希?例如,简单地将 x 和 y 相乘有什么问题?您需要避免碰撞吗?
-
本质上是三个值的随机分布函数。
-
每次我对相同的种子使用相同的输入时,我都需要相同的数字。 - 这就是基于种子的随机生成器所做的。如果您提供相同的种子,它们会生成相同的序列。否则,请出示相关代码。
-
基于单个种子需要生成多少个随机数?