Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Некорректная работа функции INT / 25 сообщений из 32, страница 1 из 2
27.02.2013, 23:04
    #38168787
MMM1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Некорректная работа функции INT
Что то у меня неправильно работает функция INT.
Например на Visual Basic 2010 значение INT(1000^(1/3)) получается 9. Хотя оно равно 10.
Скажите, пожалуйста в чем проблема?
...
Рейтинг: 0 / 0
27.02.2013, 23:19
    #38168795
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Некорректная работа функции INT
MMM1Хотя оно равно 10.
откуда такая уверенность?
...
Рейтинг: 0 / 0
27.02.2013, 23:22
    #38168798
MMM1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Некорректная работа функции INT
ИзопропилMMM1Хотя оно равно 10.
откуда такая уверенность?
А разве корень кубический от числа 1000 не равна 10?
А целая часть от 10 как, вы понимаете равна 10.
...
Рейтинг: 0 / 0
27.02.2013, 23:36
    #38168808
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Некорректная работа функции INT
Округление без учета дробной части

Код: c#
1.
double dat = Math.Round(Math.Pow(1000, 1.0 / 3));
...
Рейтинг: 0 / 0
27.02.2013, 23:38
    #38168811
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Некорректная работа функции INT
...1000^(1/3) = 9.9999999999999982
int(9.9999999999999982) = 9
...
Рейтинг: 0 / 0
27.02.2013, 23:40
    #38168817
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Некорректная работа функции INT
MMM1А целая часть от 10 как, вы понимаете равна 10.
а целая часть от 9.999999999999 ?
...
Рейтинг: 0 / 0
27.02.2013, 23:43
    #38168822
MMM1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Некорректная работа функции INT
МСУОкругление без учета дробной части
Код: c#
1.
double dat = Math.Round(Math.Pow(1000, 1.0 / 3));


Ну дело не в этом. Это же просто искуственная мера. Я же не хочу округлят.
Как я могу проверить правильности равенство Math.Pow(1000, 1.0 / 3)=Int(Math.Pow(1000, 1.0 / 3))?
На Visual Basic-е это принимается как FALSE.
...
Рейтинг: 0 / 0
27.02.2013, 23:45
    #38168828
MMM1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Некорректная работа функции INT
ИзопропилMMM1А целая часть от 10 как, вы понимаете равна 10.
а целая часть от 9.999999999999 ?
Это поятно. Но с другой стороны
1000^(1/3)=(10^3)^(1/3)=10^(3*1/3)=10^1=10.
Или я неправильно посчитал? :)
...
Рейтинг: 0 / 0
27.02.2013, 23:47
    #38168831
MMM1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Некорректная работа функции INT
МСУ...1000^(1/3) = 9.9999999999999982
int(9.9999999999999982) = 9
Просто дело в том что как то Visual Basic неправильно считает кубический корень.
...
Рейтинг: 0 / 0
27.02.2013, 23:52
    #38168839
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Некорректная работа функции INT
MMM1Просто дело в том что как то Visual Basic неправильно считает кубический корень.
дело в том, что вы не знакомы с арифметикой с плавающей точкой

1000^(1/3) это не кубический корень, это его приближённое значение.
...
Рейтинг: 0 / 0
27.02.2013, 23:53
    #38168843
MMM1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Некорректная работа функции INT
ИзопропилMMM1Просто дело в том что как то Visual Basic неправильно считает кубический корень.
дело в том, что вы не знакомы с арифметикой с плавающей точкой

1000^(1/3) это не кубический корень, это его приближённое значение.
А тогда можно считать кубический корень?
...
Рейтинг: 0 / 0
27.02.2013, 23:55
    #38168847
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Некорректная работа функции INT
MMM1А тогда можно считать кубический корень?
"точно" - никак

использовать округление, а не получение целой части
...
Рейтинг: 0 / 0
28.02.2013, 06:49
    #38168960
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Некорректная работа функции INT
Изопропил,
он не знаком с вычислительной математикой просто и не в курсе, о таких вещах как арифметическая погрешность, накапливаемая погрешность и т.д.
Он то в уме считает аналитическим путём, компьютер так не умеет и считает мат. методами с некой погрешность.
...
Рейтинг: 0 / 0
28.02.2013, 06:50
    #38168961
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Некорректная работа функции INT
автору нужно учитывать погрешность вычислений. То есть при работе с плавающей запятой использовать операцию сравнения "==" недопустимо
...
Рейтинг: 0 / 0
28.02.2013, 07:21
    #38168969
MMM1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Некорректная работа функции INT
Roman MejtesИзопропил,
он не знаком с вычислительной математикой просто и не в курсе, о таких вещах как арифметическая погрешность, накапливаемая погрешность и т.д.
Откуда такая уверенность?
Один раз спросил и люди уже из себя строят великими вычислительными математиками.
Просто я подумал что компютер при вычисление степени 1/3 для точных кубов дает точный ответ.
:)

Значит для проверки того что корен кубического от N является целым или нет, можно использовать следующее:
Код: vbnet
1.
 N = Math.Round(Math.Pow(N, 1 / 3)) ^ 3 
...
Рейтинг: 0 / 0
28.02.2013, 07:23
    #38168970
MMM1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Некорректная работа функции INT
Т.е. для целых N.
...
Рейтинг: 0 / 0
28.02.2013, 10:46
    #38169175
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Некорректная работа функции INT
MMM1Просто я подумал что компютер при вычисление степени 1/3 для точных кубов дает точный ответ
Давай отложим пока корни. Ты можешь дать "точный ответ", чему будет равняться операция 1/3?
...
Рейтинг: 0 / 0
28.02.2013, 11:04
    #38169203
MMM1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Некорректная работа функции INT
МСУMMM1Просто я подумал что компютер при вычисление степени 1/3 для точных кубов дает точный ответ
Давай отложим пока корни. Ты можешь дать "точный ответ", чему будет равняться операция 1/3?
Ты че хочеш меня проверит что ли? Или для того чтобы понимать, что компютер принимает под 1/3 некоторое десятичное число до некоторой точности(например до 10^(-15)), нужен экстраординарное знание что ли? :)
...
Рейтинг: 0 / 0
28.02.2013, 11:07
    #38169209
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Некорректная работа функции INT
MMM1Или для того чтобы понимать, что компютер принимает под 1/3 некоторое десятичное число до некоторой точности(например до 10^(-15)), нужен экстраординарное знание что ли? :)
ну не десятичное, а двоичное(калькулятор Б3-34 не рассматриваем),
а знания нужны не экстраординарные, а базовые.
...
Рейтинг: 0 / 0
28.02.2013, 11:14
    #38169221
Arm79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Некорректная работа функции INT
MMM1,

тебе пытаются сказать, что 1/3 - это десятичная дробь 0,(3). Она не является точной и ограничена возможностями машины. 0,(3) - это неточное представление рациональной дроби, лишь приближенное

Таким образом, 1000 ^ (0,(3)) - это приближенное представление кубического корня из 1000. И оно никак не может быть ровно 10.

Работа с вещественными числами - всегда работа с некоторой степенью погрешности.
...
Рейтинг: 0 / 0
28.02.2013, 11:23
    #38169237
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Некорректная работа функции INT
MMM1Ты че хочеш меня проверит что ли?
Убей себя об стену.
...
Рейтинг: 0 / 0
28.02.2013, 11:30
    #38169253
MMM1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Некорректная работа функции INT
Arm79MMM1,
тебе пытаются сказать, что 1/3 - это десятичная дробь 0,(3). Она не является точной и ограничена возможностями машины. 0,(3) - это неточное представление рациональной дроби, лишь приближенное
Таким образом, 1000 ^ (0,(3)) - это приближенное представление кубического корня из 1000. И оно никак не может быть ровно 10.
Работа с вещественными числами - всегда работа с некоторой степенью погрешности.
))) Это давно понятно! Но проблема в том что они не питаются мне сказать они питаются себе показать что они очень умные выч.математики и другие тупые. Просто можно было сказать что 1/3 это не то что в математике.
А они что? Ты того незнаеш. того непонимаеш?
Или спросить нелзя что ли?
...
Рейтинг: 0 / 0
28.02.2013, 11:30
    #38169256
MMM1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Некорректная работа функции INT
МСУMMM1Ты че хочеш меня проверит что ли?
Убей себя об стену.
Это скорее всего тебе относиться.
...
Рейтинг: 0 / 0
28.02.2013, 11:34
    #38169258
Arm79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Некорректная работа функции INT
MMM1,

Спросить можно
Вплоть до 13991572 все ответы были по существу, + с указанием на решение

Дальнейшее ваше упорствование привело к сомнениям в вашем понимании базовых вещей, что никак не может является оскорблением.

А уж дальше пошел чистый оффтопик
...
Рейтинг: 0 / 0
28.02.2013, 12:41
    #38169373
beg-in-er
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Некорректная работа функции INT
MMM1Скажите, пожалуйста в чем проблема?

как думаешь, сообщение появится?
Код: c#
1.
2.
double d = 1.00000018f - 1.00000029f;
if (d == 0)   MessageBox.Show("НОЛЬ!!!");
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Некорректная работа функции INT / 25 сообщений из 32, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]