Re: Минимальное число

From
Evgenij Masherov (2:5020/175.2)
To
Igor Rudym
Date
2002-11-22T19:51:19Z
Area
RU.ALGORITHMS
From: "Evgenij Masherov" <EMasherow@nsi.ru>

Fri Nov 22 2002 16:21, Igor Rudym wrote to Evgenij Masherov:

 IR>>> Так а как найти это минимальное вещественное число (не равное 0)
 IR>>> , которое компьютер(компилятор) может различать?

 EM>> 1. Именно так, как приведено в программе. Только при выводе формат не 
 EM>> %f, а %е. 2. Как правило, компилятор употребляет числа, аппаратно
 EM>> поддерживаемые проццессором (есть, конечно, исключения, типа real в
 EM>> Борландовском Паскале). 3. Дополнительно желательно поискать
 EM>> минимальное число такое, что 1!=(1+е)

 IR> А как вам такой алгоритмик:

 IR>     long double max_e = 1;
 IR>     long double last_e;

 IR>     while(max_e>1) {
 IR>         last_e = max_e;
 IR>         max_e*=2;
 IR>     }

 IR>     cout<<"Minimal: "<<max_e<<"\n";
 IR>     cout<<"Maximal: "<<last_e<<"\n";

 IR> Идея основана на том, что при достижении максимального числа и
 IR> последующего умножения на 2, значение в переменной меняется на
 IR> минимальное допустимое что ли.

Не пойдет. При превышении максимума происходит прерывание (а когда прерываний
не было - был АВОСТ) по переполнению порядка, и, если его искусственно
сбросить - значение число не определено.

Евгений Машеров АКА СанитарЖеня

--- ifmail v.2.15dev5
 * Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2)