IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> [С++ Builder 6] pow: domain error
сообщение
Сообщение #1


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


Здравствуйте!

Столкнулась вот с такой проблемой:
В программе генерируются случайные числа, распределённые по нормальному з-ну. Но суть не совсем в этом.
Когда требуется сгенерировать 500-1000 значений - всё нормально, когда же я захотела получить 10 000 значений - ошибка pow: DOMAIN error..

double xi = 0, xiStar = 0, yi = 0;
float sigma1 = 1, sigma3 = 1;
float m1 = 5, m3 = 3;
..............
double GaussLow(int var)
{
randomize;
xi = static_cast<double>(rand()) / static_cast<double>(RAND_MAX);
xiStar = static_cast<double>(rand()) / static_cast<double>(RAND_MAX);
switch (var)
{
case 1:
yi = sigma1 * cos(2*M_PI*xi) * pow(-2*log10(xiStar),1/2) + m1;
break;
case 2:
yi = sigma3 * cos(2*M_PI*xi) * pow(-2*log10(xiStar),1/2) + m3;
}
return yi;
}
............
void __fastcall TForm2MS::ButGenClick(TObject *Sender)
{
double tempG = 0;
int test = 10000;
StrGrGen->RowCount = test+1;
StrGrGen->Visible = true;
StrGrGen->Cells[1][0] = "Íîðìàëüíûé ç-í";
StrGrGen->Cells[2][0] = "Íîðìàëüíûé ç-í";
for (int i=0;i<test;i++)
{
StrGrGen->Cells[0][i+1] = i+1;
tempG = GaussLow(1);
StrGrGen->Cells[1][i+1] = FloatToStrF(tempG,ffFixed,8,5);
tempG = 0;
tempG = GaussLow(2);
StrGrGen->Cells[2][i+1] = FloatToStrF(tempG,ffFixed,8,5);
}
}


Объясните пожалуйста, в чём тут дело? Как избежать ошибки..?
Подозреваю, что проблема можеть быть связана с областями определения (значения) pow или log10..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 24.04.2024 8:36
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name