работа с функцией c++

236
20 марта 2017, 10:17

есть функция

    double* Probability(int r)

вот ее тело

double* Probability(int r)
{
    double p[3][3] =
    {
        {0.3, 0.15, 0.6},
        {0.1, 0.4, 0.12},
        {0.2, 0.27, 0.31}
    };
    double* P = new double[r];
    //double* P[9];
    int z = 0;
    for (int i = 1; i <= r; i++)
    {
        for (int j = 1; j <= r; j++)
        {
            for (int k = 1; k <= r; k++)
            {
                if ((i + j + k) == 3)
                {
                    P[z] = p[0][0] * p[0][1] * p[0][2];
                    //cout << P[z]<<" ";
                    z++;
                }
                if ((i + j + k) == 4)
                {
                    P[z] += p[0][0] * (1 - p[0][1]) * p[1][1] * p[0][2];
                    //cout << P[z] << " ";
                    z++;
                }
                if ((i + j + k) == 5)
                {
                    P[z] += (1 - p[0][0]) * (1 - p[1][0]) * p[2][0] * p[0][1] * p[0][2];
                    //cout << P[z] << " ";
                    z++;
                }
                if ((i + j + k) == 6)
                {
                    P[z] += (1 - p[0][0]) * (1 - p[1][0]) * p[2][0] *
                            (1 - p[0][1]) * p[1][1] * p[0][2];
                    //cout << P[z] << " ";
                    z++;
                }
                if ((i + j + k) == 7)
                {
                    P[z] += (1 - p[0][0]) * (1 - p[1][0]) * p[2][0] *
                            (1 - p[0][1]) * p[1][1] * (1 - p[0][2]) * p[1][2];
                    //cout << P[z] << " ";
                    z++;
                }
                if ((i + j + k) == 8)
                {
                    P[z] += (1 - p[0][0]) * (1 - p[1][0]) * p[2][0] *
                            (1 - p[0][1]) * p[1][1] * (1 - p[0][2]) * p[2][2] * (1 - p[1][2]);
                    //  cout << P[z] << " ";
                    z++;
                }
                if ((i + j + k) == 9)
                {
                    P[z] += (1 - p[0][0]) * (1 - p[1][0]) * p[2][0] *
                            (1 - p[0][1]) * p[2][1] * (1 - p[1][2]) * (1 - p[0][2]) * p[1][2];
                    //  cout << P[z] << " ";
                    z++;
                }
            }
        }
    }
    cout << "P= " << P << endl;
    return P;
}

как мне правильно записать значения P[z] в массив, а потом вывести его, чтобы массив P[z] состоял из 7 вероятностей?

READ ALSO
Как сравнить две строки типа std::string

Как сравнить две строки типа std::string

Имеются две переменные типа stringПодскажите методы их сравнения

435
Работа с множествами в С++

Работа с множествами в С++

Требуется написать функцию пересечения двух множеств, но возникла проблема, как проверять, что в одном множестве есть данный элемент а в другом...

333
Какую технологию/возможность/средство QT использовать для отображения 2D графика

Какую технологию/возможность/средство QT использовать для отображения 2D графика

Необходимо отобразить 2D график (до 5 млнвещественных точек) в виде кривой

372