У меня есть 2 2D массива, которые хранят данные для фрактала. Мой первый массив состоит из 3 строк, и последнее значение каждой строки является вероятностью.
Строка 1 имеет 0,33 вероятности, Строка 2 имеет 0,33 вероятности, а Строка 3 имеет 0,34 вероятности
Прямо сейчас я генерирую случайный дубль из 0-1. и я использую операторы if, чтобы определить, какую строку мне следует использовать.
вот мои массивы:
static double[][] SierpGasketMatrix = { { 0.5, 0, 0, 0.5, 0, 0, 0.33 }, //row 1
{ 0.5, 0, 0, 0.5, 0, 0.5, 0.33 }, //row 2
{ 0.5, 0, 0, 0.5, 0.43, 0.25, 0.34 } }; //row 3
static double[][] BarnsleyFernMatrix = { { 0, 0, 0, 0.16, 0, 0, 0.01 }, //row 1
{ 0.85, 0.04, -0.04, 0.85, 0, 1.6, 0.85 }, //row 2
{ 0.2, -0.26, 0.23, 0.22, 0, 1.6, 0.07 }, //row 3
{ -0.15, 0.28, 0.26, 0.24, 0, 0.44, 0.07 } }; //row 4
вот код для определения, какую строку использовать:
double randNum = Math.random();
int row = -1;
if (randNum < 0.33)
row = 0;
else if (randNum < 0.66)
row = 1;
else if (randNum < 1.00)
row = 2;
Мне кажется, что должен быть лучший способ сделать это. Кроме того, мой второй массив имеет 4 строки и разные вероятности, и я хотел бы использовать тот же метод для этого массива.