【发布时间】:2013-12-29 05:34:08
【问题描述】:
我有 4 个整数,我想将其转换为种子以生成随机数。我知道这在很大程度上是任意的,但是我确实想确保我目前正在做的事情不是矫枉过正(或者没有产生足够的种子值传播)。
我有大约 1000 个对象,我想根据它们的一些变量来获得随机属性。
两个变量是常数,介于 0 - 1000 范围内,并且对于每个对象都是随机的,可能会出现重复,但这根本不可能(constant1 和 constant2)。其他两个变量通过程序运行在很长一段时间内以 1 的增量变化,从 0 开始,可以是有符号 int32 范围内的任何位置,但往往在 -100 和 100 之间(variable1 和 variable2 )。
如何根据这 4 个值适当地生成种子?
【问题讨论】:
-
(constant1*variable1)XOR(constant2*variable2)怎么样 -
由于
variable1和variable2以0 开头,所有对象最初将具有相同的种子! -
然后执行
variable1+1和variable2+1。variableX是否可以预测?它们究竟是如何变化的?所有对象都一样吗?我的意思是,他们会确定性地改变价值观吗?如果是这样,为什么将它们用作(部分)种子? -
同样,
variable1和variable2的值都可以是 -1。是的,变化是确定性的。这些变量表示对象位置必须回绕到屏幕的次数。即如果object1位于x = 1100并且屏幕有width = 500然后variable1 = 2因为它已被回绕到屏幕两次。 y 轴和variable2相同。所有物体都沿相同的方向矢量移动,只是速度不同。我想尽可能多地删除细节,但也许这是有必要知道的。 -
但它们可能 在某些时候的值为-1 ...根据您所说的应该是随机的。无论如何,如果更改是确定性的,那么我认为将它们作为种子的一部分是没有意义的(如果我理解正确的话,我不确定:) 在这一点上我只想说“异或所有四个"