WFR created MATH-1533:
-------------------------
Summary: EnumeratedDistribution.sample() depends on ordering of
input even if RNG is given
Key: MATH-1533
URL: https://issues.apache.org/jira/browse/MATH-1533
Project: Commons Math
Issue Type: Wish
Affects Versions: 3.6.1
Environment: Windows 10, Java 8
Reporter: WFR
When constructing an EnumeratedDistribution with given RNG, the output of
samples depends on the ordering of the input:
{code:java}
EnumeratedDistribution<Integer> dis1 = new EnumeratedDistribution<>(
new Well19937c(42),
new ArrayList<>(Arrays.asList(new Pair<>(1, 0.3), new Pair<>(2,
0.7)))
);
EnumeratedDistribution<Integer> dis2 = new EnumeratedDistribution<>(
new Well19937c(42),
new ArrayList<>(Arrays.asList(new Pair<>(2, 0.7), new Pair<>(1,
0.3)))
);
System.out.println(Arrays.toString(dis1.sample(2))); // Yields [2, 1]
System.out.println(Arrays.toString(dis2.sample(2))); // Yields [2, 2]
{code}
I would expect the output to be deterministic in this case, given that the RNG
is fixed and that from the definition of enumerated distributions there is no
reason for it to depend on the ordering of the input. Otherwise, a remark in
the constructor's documentation would be useful.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)