我一直在寻找Java的等价代码或基本理论为pythons np.random.choice(Numpy as np)。我正在尝试用Java实现Q-learning。我有一个类似的实现,它使用Python的np.random.choice方法从概率分布中选择随机移动。
输入列表:['pooh','rabbit','piglet','Christopher']和概率:[0.5,0.1,0.1,0.3]
我想在给定每个输入元素的相关概率的情况下从输入列表中选择一个值。
答案 0 :(得分:1)
使用Apache Commons数学库,EnumeratedInteger发布,http://commons.apache.org/proper/commons-math/javadocs/api-3.6/org/apache/commons/math3/distribution/EnumeratedIntegerDistribution.html
的好主意沿线(在某些伪代码中)
values = new String[4]{'pooh', 'rabbit', 'piglet', 'Christopher'};
dist = new EnumeratedIntegerDistribution(new int[4]{0,1,2,3}, new double[4]{0.5, 0.1, 0.1, 0.3});
int idx = dist.sample();
return values[idx];