Страница: 1 | 2 |
Вопрос: Почему не извлекается корень из отриц. чисел?
Добавлено: 25.11.05 16:09
Автор вопроса: Calhoon | Web-сайт:
Откройте VB, в окне Immediate наберите:
x=-3:? x^(-1/3)
Выдает ошибку. В чем проблема?
Ответы
Всего ответов: 19
Номер ответа: 1
Автор ответа:
AndreyIl
ICQ: 260668334
Вопросов: 1
Ответов: 13
Профиль | | #1
Добавлено: 25.11.05 16:15
Работает без проблем:
MsgBox 3 ^ (-1 / 3) '=0.69336...
Номер ответа: 2
Автор ответа:
AndreyIl
ICQ: 260668334
Вопросов: 1
Ответов: 13
Профиль | | #2
Добавлено: 25.11.05 16:34
Точнее так:
MsgBox (-3) ^ (-3)
(-3) ^ (-1 / 3) - не работает.
-3 ^ (-1 / 3) - работает.
Номер ответа: 3
Автор ответа:
AsHeS
ICQ: 229759992
Вопросов: 14
Ответов: 93
Профиль | | #3
Добавлено: 25.11.05 17:24
Думаю проблема в том , что ты что-нибудь забыл объявить
Номер ответа: 4
Автор ответа:
AsHeS
ICQ: 229759992
Вопросов: 14
Ответов: 93
Профиль | | #4
Добавлено: 25.11.05 17:27
Точнее идет какая-то несовместимость типов . Например ВБ считает что x as String
Номер ответа: 5
Автор ответа:
AndreyIl
ICQ: 260668334
Вопросов: 1
Ответов: 13
Профиль | | #5
Добавлено: 25.11.05 17:34
(-3) ^ (1 / 3) - не работает.
(-A)^(1/N)=корень N из (-A).
Если N-четное, то: корень из отрицательного числа не существует.
Номер ответа: 6
Автор ответа:
Pashenko
ICQ: 176176951
Вопросов: 14
Ответов: 655
Профиль | | #6
Добавлено: 25.11.05 17:35
Господа, вы что, прикалываетесь?
Номер ответа: 7
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #7
Добавлено: 25.11.05 17:39
Нет, тут проблема в математике.
Dim v1 As Double
Dim v2 As Double
v1 = -3
v2 = -1 / 3
v3 = v1 ^ v2
Тоже выдает ошибку. Возможно, это число мнимое.
Номер ответа: 8
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #8
Добавлено: 25.11.05 17:39
Конечно же, Dim v3 As Double
Номер ответа: 9
Автор ответа:
AndreyIl
ICQ: 260668334
Вопросов: 1
Ответов: 13
Профиль | | #9
Добавлено: 25.11.05 17:42
Та же ошибка
Номер ответа: 10
Автор ответа:
Pashenko
ICQ: 176176951
Вопросов: 14
Ответов: 655
Профиль | | #10
Добавлено: 25.11.05 17:49
Существует.
В общем случае корень из отрицательного (да и из положительного тоже) числа - комплексное число.
VB работает только с действительными числами (средствами языка).
Если хочешь работать с комплексными числами, определяй свои типы и пиши свои функции обработки арифметических действий.
Номер ответа: 11
Автор ответа:
AndreyIl
ICQ: 260668334
Вопросов: 1
Ответов: 13
Профиль | | #11
Добавлено: 25.11.05 17:54
Не совсем понял: в школе учат, что делить на 0 нельзя и корень из отрицательного числа не существует.
Чему тогда равен корень из -4?
Номер ответа: 12
Автор ответа:
Pashenko
ICQ: 176176951
Вопросов: 14
Ответов: 655
Профиль | | #12
Добавлено: 25.11.05 18:04
Смотря что делить
2j, где j - мнимая единица, j^2=-1.
Номер ответа: 13
Автор ответа:
Страшный Сон
Вопросов: 46
Ответов: 848
Профиль | | #13
Добавлено: 25.11.05 18:23
Если нужно возвести отрицательное число в дробную степень, лучше поступать так:
Ошибок не будет, но такая функция всегда будет нечетной.
Номер ответа: 14
Автор ответа:
Victor
ICQ: 345743490
Вопросов: 42
Ответов: 385
Web-сайт:
Профиль | | #14
Добавлено: 25.11.05 19:06
Насколько я знаю, VB делает так:
если степень целая, он применяет алгоритм, работающий с отрицательными числами. Если нет, то он ползуется другой формулой. И скорее всего она
x^y = exp(log(x) * y). И она действительно не может работать с отрицательными иксами.
Номер ответа: 15
Автор ответа:
Sacred Phoenix
ICQ: 304238252
Вопросов: 52
Ответов: 927
Профиль | | #15
Добавлено: 25.11.05 21:11
Тогда реши уравнение x = 0 : 0