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)