![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() |
18192123 |
![]()
Сообщение
#1
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
Здравствуйте!
Столкнулась вот с такой проблемой: В программе генерируются случайные числа, распределённые по нормальному з-ну. Но суть не совсем в этом. Когда требуется сгенерировать 500-1000 значений - всё нормально, когда же я захотела получить 10 000 значений - ошибка pow: DOMAIN error..
Объясните пожалуйста, в чём тут дело? Как избежать ошибки..? Подозреваю, что проблема можеть быть связана с областями определения (значения) pow или log10.. |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата Может рандом выдаёт какое-то недопустимое значение аргумента...? Вполне возможно... Я тебе даже скажу какое значение должно выдаваться, чтобы ты получала то, что получаешь: НОЛЬ... Если rand() вернул 0, то xiStar (естественно) тоже будет = 0, а это некорректные входные данные, это оговорено в описании функции. Так что придется тебе гарантировать, что аргумент log10 не будет нулевым. Ну, например, так:int sure_rand() Если сделать просто: xiStar = static_cast<double>(rand() + 1) / static_cast<double>(RAND_MAX);, то получишь сбой, когда rand() вернет RAND_MAX... Тогда xiStar примет значение > 1, следовательно log10(xiStar) станет больше 0, и ты попытаешься вычислить квадратный корень из отрицательного числа. Поверь, ни к чему хорошему это не приведет... |
![]() ![]() |
![]() |
Текстовая версия | 20.06.2025 21:51 |