Random 如何生成相同的伪随机整数序列?
在Clojure中生成相同的伪随机整数序列或多或少有标准的解决方案吗 我知道随机化的三个标准函数:,和,但它们似乎没有提供任何“设置”其内部状态的方法Random 如何生成相同的伪随机整数序列?,random,clojure,Random,Clojure,在Clojure中生成相同的伪随机整数序列或多或少有标准的解决方案吗 我知道随机化的三个标准函数:,和,但它们似乎没有提供任何“设置”其内部状态的方法 (defn randomish [seed] (repeatedly (let [gen (java.util.Random. seed)] (fn [] (.nextInt gen))))) (take 5 (randomish 10)) ;(-1157793070 1913984760 1107254586 1773
(defn randomish [seed]
(repeatedly
(let [gen (java.util.Random. seed)]
(fn [] (.nextInt gen)))))
(take 5 (randomish 10))
;(-1157793070 1913984760 1107254586 1773446580 254270492)
(take 5 (randomish 10))
;(-1157793070 1913984760 1107254586 1773446580 254270492)
随机地,反复地
捕获函数
它捕获随机对象
保持可变内部状态的
由种子初始化。
对randomish的每次调用都会生成一个包含唯一随机对象的新序列对象。但是具有相同种子的随机对象产生相同的序列
如果以上是错误的,请纠正我。这条路似乎很难走
注
在Clojure中,最好是调用.nextLong而不是nextInt
根据请求,适用于处理可选的独占限制:
(defn randomish
([seed]
(repeatedly
(let [gen (java.util.Random. seed)]
(fn [] (.nextInt gen)))))
([seed limit]
(repeatedly
(let [gen (java.util.Random. seed)]
(fn [] (.nextInt gen limit))))))
。。。生产
(take 5 (randomish 10 100))
;(13 80 93 90 46)
(take 5 (randomish 10 100))
;(13 80 93 90 46)
随机地,反复地
捕获函数
它捕获随机对象
保持可变内部状态的
由种子初始化。
对randomish的每次调用都会生成一个包含唯一随机对象的新序列对象。但是具有相同种子的随机对象产生相同的序列
如果以上是错误的,请纠正我。这条路似乎很难走
注
在Clojure中,最好是调用.nextLong而不是nextInt
根据请求,适用于处理可选的独占限制:
(defn randomish
([seed]
(repeatedly
(let [gen (java.util.Random. seed)]
(fn [] (.nextInt gen)))))
([seed limit]
(repeatedly
(let [gen (java.util.Random. seed)]
(fn [] (.nextInt gen limit))))))
。。。生产
(take 5 (randomish 10 100))
;(13 80 93 90 46)
(take 5 (randomish 10 100))
;(13 80 93 90 46)
只是想为仍在寻找的人添加,自2015年起clojars上就有这样的库:只是想为仍在寻找的人添加,自2015年起clojars上就有这样的库:可能重复的@jornsharpe的可能重复,实际上它似乎是重复的,但引用的问题无论如何都没有像样的答案。@jbr,我的问题甚至没有提到*rnd*或类似的东西,这个问题更具体。@Mark,亚历克斯的答案不正是你想要的吗?可能是@jornsharpe的复制品,确实似乎是复制品,但引用的问题无论如何都没有像样的答案。@jbr,我的问题甚至没有提到*rnd*或类似的东西,这个问题更具体。@Mark,Alex的答案不正是你想要的吗?答案很好!令人困惑的是,这样的东西不是标准clojure的一部分library@Ezequiel谢谢如果哈斯克尔就是这样做的,我也不会感到惊讶。序列是随机数发生器的良好模型。如果你能像这样插入随机性,你就可以单独正确地测试它所驱动的东西。回答得很好!令人困惑的是,这样的东西不是标准clojure的一部分library@Ezequiel谢谢如果哈斯克尔就是这样做的,我也不会感到惊讶。序列是随机数发生器的良好模型。如果你能像这样插入随机性,你可以单独正确地测试它驱动的东西。