Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.05.2013, 09:49   #1
Lost7070
Пользователь
 
Регистрация: 02.03.2012
Сообщений: 25
По умолчанию Иногда функция возвращает значение NaN

Доброго времени суток.
У меня следующая проблема. Не всегда, но в 70% случаев функция возвращает значение NaN. Никак не могу найти причину этого. Очень буду признателен, если подскажете, чем это может быть вызвано и где стоит искать косяк.
Ниже код самой функции:

Код:
double distributions::gaverage(double **matr,double number_v,double number)
{
    double *average = new double [number_v];
    double temp=0;
    for(int j=0; j<number_v; j++)
    {
        for(int i=0; i<number; i++)
            temp=temp+matr[j][i];
        average[j] = temp/number;
        temp=0;
    }
 
    double p_s=0;
    temp=0;
    for(int i=0; i<number_v; i++)
        temp=temp+average[i];
    p_s=(1/number)*temp;
    
    temp=0;
    for(int i=0; i<number_v; i++)
        temp=temp+(pow((average[i]-p_s),2));
    distributions::GAverage=(1/number)*temp;
    return distributions::GAverage;
}
Если недостаточно какой-либо информмации, скажите, я предоставлю.
Заранее благодарен всем отозвавшимся.
Lost7070 вне форума Ответить с цитированием
Старый 04.05.2013, 11:53   #2
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Естественно, недостаточно.
При каких именно входных значениях функция возвращает NaN?
s-andriano вне форума Ответить с цитированием
Старый 04.05.2013, 12:39   #3
Lost7070
Пользователь
 
Регистрация: 02.03.2012
Сообщений: 25
По умолчанию

Ну, к примеру при значениях: number_v=100, number=600 и двумерный массив случайных чисел, числа генерятся следующим образом:

double distributions::random(double a, double b)
{
return ((b-a)*((double)rand()/RAND_MAX))+a;
}

double distributions::nr(double p1, double p2)
{
return ((sqrt(-2*log(random(0,1))))*(cos(2*3.14*ra ndom(0,1)))*p1)+p2;
}
p1=1, p2=0.

При этих и любых других возвратиться может и не NaN, но в большинстве случаев он.
Lost7070 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функция ВПР возвращает значение #Н/Д Kvint_Sertoriy Microsoft Office Excel 3 31.12.2012 16:12
Не возвращает значение ListBox Object_File ASP.NET 1 10.12.2012 13:27
Значение NAN nXs Общие вопросы Delphi 9 26.11.2011 20:54
Почему функция не возвращает никакое значение? Тупой Общие вопросы Delphi 1 31.05.2009 17:31
Функция ВПР возвращает лишь 1 ближайшее к заданному значение...... Death Dealer Microsoft Office Excel 4 24.11.2008 11:26