Почему вдруг меняется тип переменной и содержание?

Angerslave

Новичок
zerkms
Тебе осталось чуть-чуть до осознания факта, буквально один "дзынь". А я пойду спать, спорить уже нет смысла:)
 

zerkms

TDD infected
Команда форума
Angerslave
осознание факта придёт с нормальным математическим доказательством. пока я его не услышал.
ps: а тебе осталось чуть-чуть до осознания того, что "стремится" и "равен" это разные вещи :-Р
 

zerkms

TDD infected
Команда форума
вот это уже другое дело :)
однако, почитав обсуждение статьи на википедии, пришёл к выводу - что если бы проблема была явной и неоспоримо доказуемой, то не было бы стольких видов доказательств и не было таких огромных дискуссий и двух "лагерей" спорщиков

ps: там же было указано, что доказательство равенства 0.(9) = 1 - популярное развлечение у математиков, спорт. думаю аналогией можно провести споры о шаблонизаторах на этом форуме :)
 

zerAlex

Новичок
П-з-ц....
Все так и выходит - все из-за float ! Выходит полная хрень - сложение и вычитание может и не дать того результата, который мы ожидаем. Какой смысл тогда в такой математике, если простое действие дает приблизительный результат?

Числа оказались такими:
+1.1(9)! -1 +0.6(9)! -0.9

Но почему тогда не -0.02 , а -5.3290705182E-15 !!! Ничего себе разница!
И возникает лишь тогда, когда результат должен быть равен 0 !!!

НЕ ОТЛЫНИВАЕМ, ОТВЕЧАЕМ :)
 

zerkms

TDD infected
Команда форума
zerAlex
погугли на тему особенности представления чисел в PC. а заодно на досуге попробуй разложить на степени двойки числа 0.7, 0.9 :)
 

Angerslave

Новичок
zerkms
Просто оперирование бесконечностью скорее интуитивно, чем реально представляемо. Это также, как и осознание того факта, что по дуге большого круга плыть короче, чем по "прямой".
 

zerkms

TDD infected
Команда форума
а -5.3290705182E-15 !!! Ничего себе разница!
5.32 * 10^-15 это очень маленькое число

Angerslave
и всё таки - согласись, что сколько бы много девяток не было, до целого 1 всегда будет не хватать вот совсем чуточку :)
ps: повторю - если бы всё было просто и очевидно для всех, то не было бы тонны споров и доказательств :)
 
Angerslave
0.(9) - это, как уже говорили ранее, сумма ряда (9/10 + 9/100 + 9/1000 + .... + 9/10^n, при n->беск.). Предела, насколько мне известно, там нет.

lim(0.(9)) = 1, но 0.(9) != 1

Т.е. при округлении этой суммы - равенство есть, но в поределении 0.(n) - нет округления.

Я бы сказал, что тут скорее спор понятий чем фактов.
 

Angerslave

Новичок
Так, последний аргумент неверующим:
http://ru.wikipedia.org/wiki/0,(9)
И закроем тему про периодические дроби:) Нас ещё классе в 8 учили что это такое и как они появляются, может кто-то забыл, а кого-то учили другому, но факт остаётся фактом. Хотя математика вообще оперирует только моделями, поэтому не нужно пытаться добиться "очевидности". Без вдалбливания и существование дробных чисел-то сложно показать "очевидным". Всё, завязываю с оффтопом.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Angerslave, не спорь с ними, это программисты, они математику не учили :)
 

Angerslave

Новичок
itprog
Конечно. Для меня это также понятно, как и 2+2=4. Это не так очевидно, как посчитать на пальцах, но если отбросить стереотипы и, представив себя пятикласником, разобраться в вопросе, то всё встанет на свои места:)
 

dimagolov

Новичок
100% программисты, для которых бесконечности не существует, потому что представление чисел в памяти конечно :) ну и в конце концов все равно в программах вместо fload1 == float2 приходится писать abs(float1 - float2) < 0.0000001, так что исходя из этого 0.(9) < 1, по крайней мере в компьютере :D
 

phprus

Moderator
Команда форума
zerkms
Ты согласен с тем, что 0.(9) == 9/10^1 + 9/10^2 + 9/10^3 + ... и так далее?
Ты согласен, что это геометрическая прогрессия, первый член которой равен 0,9, а знаменатель равен 1/10?
Ты согласен с тем, что эта прогрессия бесконечная?
Ты согласен с тем что сумма бесконечной геометрической прогрессии равна b1/(1-q) ?
Ты согласен с тем, что 0,9/(1-1/10) == 0,9/(1 - 0.1) == 0.9/0.9 == 1 ?

Отсюда следует, что 0.(9) == 1. В противном случае хотя-бы одно из этих утверждений было бы ложным.
 

zerkms

TDD infected
Команда форума
phprus
если всё так очевидно - почему в математических сообществах, где тусят реально умные _математики_, этот спор до сих пор однозначно не решён?
 

dr-sm

Новичок
что значит однозначно не решен. это все софистика.
есть такие математические объекты, называются ряды.
запись 0.(9) - это не число, это ряд, причем сходящийся.
и сходицо он к определенному значению те 1.
поэтому можно считать записи 0.(9) и 1 эквивалентными,
при проведении вычислений.
 

itprog

Cruftsman
dr-sm
можно считать и равно это разные вещи. Первое то всем понятно :) Так может 1 это и есть "округленное" 0,(9) ?
а софистика с чьей стороны?
 
Сверху