Нас этому учили на численных методах. Например, если нужно сложить много положительных чисел, то надо складывать их, начиная с самых маленьких. Как следует действовать, если много чисел разного знака, я уж и не знаю. С другой стороны, наверно, можно пользоваться числами с фиксированной точкой. Тогда будут проблемы не со сложением, а с умножением.
Считать со строгим контролем округления можно научиться, наверно. Будет медленнее в несколько раз, но это не беда, мне кажется. Так или иначе, в предел возможностей компьютеров по скорости и памяти когда-нибудь мы все (кто ими пользуется) упремся.
Когда много чиселъ разного знака и нельзя предсказать знакъ, то нѣтъ никакого выхода, кромѣ какъ терять точность. Сейчасъ есть возможность назначить всѣмъ числамъ, скажемъ, точность въ 1000 знаковъ и всё такъ считать. Это гораздо медленнѣе, но результатъ гарантированъ. Я когда-то интересовался, какъ можно наиболѣе оптимально вычислить разныя функцiи съ точностью въ N знаковъ, когда N очень велико. Оказывается, что функцiи дѣлятся на классы по этому признаку, и напримѣръ вычислить квадратный корень, синусъ, и функцiю Бесселя - одинаково быстро, а дзета-функцiю Римана или гамма-функцiю - гораздо медленнѣе (причина - эти функцiи не являются рѣшенiями дифф. ур. съ полиномiальными коэффицiентами).
no subject
Date: 2009-10-07 08:49 pm (UTC)Считать со строгим контролем округления можно научиться, наверно. Будет медленнее в несколько раз, но это не беда, мне кажется. Так или иначе, в предел возможностей компьютеров по скорости и памяти когда-нибудь мы все (кто ими пользуется) упремся.
no subject
Date: 2009-10-08 09:03 am (UTC)