Выражение для количества элементов в матрице с вероятностью p% наличия элемента в каждой позиции - PullRequest
0 голосов
/ 07 декабря 2018

Я работаю над разреженным матричным проектом для курса программирования.Чтобы доказать, что наш проект работает, мы должны показать, что он может обрабатывать добавление двух матриц 1000x1000, которые соответствуют следующим критериям.

Each element in each matrix has a 5% chance of being a 1, otherwise it is a 0.

Мой текущий метод построения одной из этих матрицпоказано в следующем псевдокоде:

p = .05
loop M from 0 to 1000 {
    loop N from 0 to 1000 {
        diceRoll = generate random number between 0. and 1.
        if (diceRoll < p){
            Matrix[M][N] = 1
        }
    }
}

Я считаю, что я мог бы сделать это более эффективным способом, определив, сколько единиц должно быть в матрице, а затем случайным образом разместив их по всему.например.матрица 1000x1000 должна иметь примерно 5% ее пробелов с единицами, что означает 1 000 000 * .05 = 50 000 единиц.

Однако первый метод не всегда дает матрицу с точно 5% единиц;обратите внимание, что теоретически он может дать матрицу, полную нулей, или матрицу, полную своих.

Как я могу сделать выражение для определения (или приблизительного) числа единиц, которые нужно поместить в матрицу, учитываяразмеры и p?

...