Мне нужно пробовать ячейки сетки (матрицы MXN) в соответствии с нормальным распределением в Java.Как отбирать ячейки сетки (матрицы) в соответствии с нормальным (гауссовским) распределением?
Я знаю, что the Apache Math library имеет функции для выборки значений одномерно (1D), поэтому для вектора было бы хорошо, но я не могу найти альтернативы для 2D.
Я подумал, используя двойной подход 1D: один для строк, а другой для cols. Однако (1) это не совсем точно, поскольку он будет использовать Von Neumann distances, а не geometrical distance, и (2) этот подход не позволит избежать повторений (т. Е. Не будет выборки).
Итак, как я могу отображать ячейки сетки (матрицы) в соответствии с нормальным (гауссовским) распределением, центрированным в конкретной ячейке (r, c)?
Альтернативно, если выборка не представляется возможным (или слишком сложно), как я распределить вероятность, используя нормальное распределение accross ячеек в сетке с центром в конкретной ячейке (г, с)? Например, для 3х3 ::
0.1 | 0.1 | 0.1
0.1 | 0.2 | 0.1
0.1 | 0.1 | 0.1
Я не уверен, если предыдущие значения будут фактически соответствовать любому Gaussian, но что более важно, для любой матрицы, сумма ячейки должно быть 1.
Отсюда я могу просто повторить и бросить это; или рулон и повторение сложения.
Не могли бы вы использовать полярные координаты и использовать Guassian Distribution для 'r' и равномерным распределением для' theta'? Вам нужно будет решить, как сделать его пригодным/масштабировать для вашей сетки, но это может позволить вам использовать библиотеку Apache. – bradimus
Я не уверен, кто является 'r', а кто' theta', но вы говорите: 1. Используйте единое распределение для вычисления угла, 2. Используйте библиотеку apache для вычисления расстояния в этом угле, 3 Найти ячейку с учетом направления и угла? Ммм ... геометрически это, кажется, имеет смысл. Это действительно не избежать повторений, но на данный момент мне все равно. И найти соответствующую ячейку может быть немного боль, как при установке масла в старые ржавые шестерни на велосипеде. –