Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 |

 

  Вопрос: Почему не извлекается корень из отриц. чисел? Добавлено: 25.11.05 16:09  

Автор вопроса:  Calhoon | Web-сайт: 4elovekssn.blog.ru | ICQ: 789764 
Откройте 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
Если N-четное, то: корень из отрицательного числа не существует

Существует.

В общем случае корень из отрицательного (да и из положительного тоже) числа - комплексное число.
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
делить на 0 нельзя

Смотря что делить :-)

Чему тогда равен корень из -4

2j, где j - мнимая единица, j^2=-1.

Ответить

Номер ответа: 13
Автор ответа:
 Страшный Сон



Вопросов: 46
Ответов: 848
 Профиль | | #13 Добавлено: 25.11.05 18:23
Если нужно возвести отрицательное число в дробную степень, лучше поступать так:

Abs(x) ^ y * Sgn(x)


Ошибок не будет, но такая функция всегда будет нечетной.

Ответить

Номер ответа: 14
Автор ответа:
 Victor



ICQ: 345743490 

Вопросов: 42
Ответов: 385
 Web-сайт: vt-dbnz.narod.ru
 Профиль | | #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
делить на 0 нельзя

Тогда реши уравнение x = 0 : 0

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам