Top.Mail.Ru
Ответы

Как компьютеры считают иррациональные числа?

Хотел через Java подсчитать некоторое иррациональное число, например 1/998 – это особое число, где после точки описаны все степени двойки (0,001002004008016032064128256...). В итоге компилятор выдал просто 0.0

Почему Java не может подсчитать иррациональное число? При том калькулятор на это способен. В чем разница между их методами подсчета? И вообще как компьютеры считают иррациональные числа?

Буду не против ссылки на статью, где широко раскрыта эта тема.

По дате
По рейтингу
Аватар пользователя
Искусственный интеллект

>некоторое иррациональное число, например 1/998
Ты что-то путаешь. 1/998 - это рациональное число, как все числа вида Z/N вообще.

>В итоге компилятор выдал просто 0.0
Логично. Если поделить ЦЕЛУЮ единицу на ЦЕЛОЕ 998, получится ЦЕЛЫЙ 0. Потому что 998 помещается в 1 ровно 0 ЦЕЛЫХ раз.

>Почему Java не может подсчитать иррациональное число?
Потому что компьютер - конечный автомат.

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

>В чем разница между их методами подсчета?
В том, что калькулятор априори воспринимает любое число, как число с фиксированной точкой, если это простенький калькулятор. А вот на инженерном ты запросто можешь получить свой нолик.

>И вообще как компьютеры считают иррациональные числа?
Никак. Иррациональное число нельзя выразить в конечном виде, а компьютер - конечный автомат. Поэтому используется некоторое ограничение точности вычислений, что делает любое иррациональное число рациональным.

>Буду не против ссылки на статью, где широко раскрыта эта тема.
Любой учебник по матану для 1-го курса.

Аватар пользователя
Оракул

Попробуйте один из операндов сделать дробным. Например 1.0 / 998.
Тогда Java выдаст дробный результат, не отбрасывая дробную часть.
На этой проблеме Си-подобных языков часто спотыкаются в начале.

Аватар пользователя
Гений

Никак не считают. Любое иррациональное число хранится в компьютере приближённо - в виде близкого по значению рационального числа с ограниченным кол-вом значащих разрядов.

И, кстати, любые числа вида n/m являются именно рациональными.

Аватар пользователя
Ученик

бред пишешь.... и никакого отношения к джаве...

Аватар пользователя
Просветленный

Что, говоришь калькулятор может? https://matematika-club.ru/kalkulyator-bolshih-chisel 1/998 = 0.001002004008016032064128256513026052104208416833667334669338677354709418837675350701402805611222444889779559118236472945



Видео по теме