【发布时间】:2021-01-19 07:58:36
【问题描述】:
我是shufflelist 在Kotlin 和Python 使用相同的seed,但我得到不同的顺序。 Python 和 Kotlin 上的 Cod 如下:
科特林
var trainInput = arrayListOf<Int>(1,2,3,4,5)
val randomSeed = 1549786796.toLong()
trainInput.shuffle(Random(randomSeed))
输出: [1、3、5、2、4]
Python:
import numpy as np
arr = np.array([1,2,3,4,5])
np.random.seed(1549786796)
np.random.shuffle(arr)
输出: [3 2 4 1 5]
谁能指出我怎样才能在两个平台上获得相同的序列?
谢谢。
编辑
我还检查了 Stef 建议的库 java-random (https://pypi.org/project/java-random/) 但这只会生成随机数。我需要shuffle生成相同序列的列表。
【问题讨论】:
-
Java 和 numpy 使用不同的随机数生成器,那么您为什么希望它们产生相同的结果呢?请参阅stackoverflow.com/questions/11162798/…,尤其是pypi.org/project/java-random
-
@Stef:我正在处理
Machine Learning问题,我想比较结果,为了相同,输入序列必须相同。我想知道,如果我能得到相同的序列。 -
所以
java-random(见上面的链接)应该是你的朋友:) -
@Stef:
java-random只生成随机数。我想shuffle生成相同序列的列表。 -
用两种语言实现一些简单的随机数生成器(例如stackoverflow.com/a/3062783/51685)并使用它来支持您的Fisher-Yates shuffle 实现?
标签: python numpy kotlin sequence shuffle