Погрешность компутера
У меня есть такой предмет как "Практикум решения задач на ЭВМ". Мне дали задание: "Определить погрешность компьтера опытным путем. Используя Paskal или Delphi". Я даже не знаю с чего начать. Помогите решить эту проблему. Заранее благодарен!
Привет всем.
У меня есть такой предмет как "Практикум решения задач на ЭВМ". Мне дали задание: "Определить погрешность компьтера опытным путем. Используя Paskal или Delphi". Я даже не знаю с чего начать. Помогите решить эту проблему. Заранее благодарен!
Это вам в школе дали? Не хотят вам оценку ставить:-)) Такая формулировка вообще непонятна.
Да нет не в школе. Просто препод у нас уникум:)) Да я и не на программиста учусь, а на физика. Формулирока вопроса кстати дословна. На попытки конкретизировать он лишь заявлял:"Как какая погрешность? Компьютера конечно. Это должно быть конкретное число". Я задал этот вопрос на форуме лишь потому что думал, что эт я чего нить не догоняю.
Ну так ответь ему, что компьютер, как Бог - безпогрешен:)
А если имеется в виду погрешность при реализации численных методов или арифметических операций, то это скорее математика... Вобщем действительно непонятно.
Просто препод у нас уникум:)) ...
Да, это уж точно:-))))
Мне дали задание: "Определить погрешность компьтера опытным путем. Используя Paskal или Delphi".
Есть куча вариантов! Прикол в том, что тема действительно левая, что допускает правильность левых ответов. Сам учился когда-то. Так вот, что я тебе скажу про погрешность компа.
1. Точность представления чисел конечна. В твоём случае это 18-20-й знак за запятой, проверь на всякий случай.
2. Попробуй вычислить значения функций вблизи экстремумов, точек разрыва и проч. Прикольно юзать тригонометрические функции, только не сами по себе, а в каких-нибудь злохитрых выражениях.
3. Развитие п.2: Два достаточно сложных тождественных алгебраических выражения. подойдёт что-нибудь вроде квадратного уравнения. Например, сложи два квадратных уравнения и вычти третье. По-моему, в 15-м знаке за точкой будет что-нибудь кроме нуля.
4. Развитие п.3: Цикл. Устроен примерно так:
var n:real;
for i:= 1 to 10 {или 100} do
n:=i;
{решаешь уравнение примерно такого вида:
n*x*x + (n/2)*x + (n/i)
результаты решения складываешь в массив, и делаешь с ними всё, что тебе подскажет знание статистики.}
После этого сможешь сделать какие-то выводы о погрешности. Потом тебе только подвешенный язык поможет. :)
"Определить погрешность компьтера опытным путем. Используя Paskal или Delphi".
Кстати, погрешность ты определишь не только (и не столько) компутера, но и конкретного языка реализации. Например, Паскаль считает в целом точнее, чем Flash ActionScript.
Ну и напоследок цитата.
Кстати, если ты найдёшь погрешность, обязательно скажи всем, что это явление может стать причиной для ошибки. А эту ошибку очень трудно выловить, я как-то пробовал.
Привет всем.
У меня есть такой предмет как "Практикум решения задач на ЭВМ". Мне дали задание: "Определить погрешность компьтера опытным путем. Используя Paskal или Delphi". Я даже не знаю с чего начать. Помогите решить эту проблему. Заранее благодарен!
Напиши прогу, которая работает с длинными числами - погрешность будет 0. А точнее единица поделить на 10^порядок мантиссы. Или, при нормальной реализации - 1/10^4294967296. А вообще - на компе можжно посчитать с любой точностью. Короче - обьясни преподу, что погрешности компьютера нету, есть погрешность конкретного алгоритма или конкретной реализации какого-то алгоритма. Если будет гнать - спроси какая погрешность у счет?
2)Глупость,чисто как отписка,но для препода думаю покатит:взять два одинаковых числа, и в цикле все время сравнивать,добавляя к одному из них все меньшее значение (1/10,потом на 100 и т.д.).Когда сравнение даст true - вот и погрешность компа...маразм конечно но думаю он хочет этого
задача действительно поставлена ужасно. кроме погрешностей при вычислениях - а они неизбежны при выполнении вычислений на дискретной по сути своей машине, есть еще всяческие погрешности работы самой машины. связанные с архитектурой. например - прерывания от таймера - маскируемые. соответственно - можно считать погрешность в работе часов компа, которая набегает при достаточно частом блокировании прерываний (кто часто юзает SoftIce - меня поймет). различные таймеры внутри системы - таймеры TCP и прочая ерунда - тоже имеют погрешность работы, связанную с невозможностью прерывания выполнения задачи в режиме ядра. и т. п. вывод. препод - чайник.
Гы. Я бы сказал - не просто чайник, а самый безносый чайник из всех безносиковых чайников! :D
ИМХО, ему надо обьяснить этот факт, спросив, к примеру: "А какая погрешность кирпича? Он как любой объект должен иметь погрешность.". Если он не дебил, то поймет, иначе есть шанс что задумается или заставит кого-то считать :D
Привет всем.
У меня есть такой предмет как "Практикум решения задач на ЭВМ". Мне дали задание: "Определить погрешность компьтера опытным путем. Используя Paskal или Delphi". Я даже не знаю с чего начать. Помогите решить эту проблему. Заранее благодарен!
Скажи ему пусть для начала определится с конфигом компа. Можешь грузануть, что типа у х86 одна погрешность, у Alpha - другая, у PDP-11 третья, что это зависит от операционной системы. Напиши прогу, засунь в обработчик какого-то батона левый алгоритм, который нифига не делает, но очень долго думает. Напиши перехватчик на нажатие - что-бы пихал в Edit какое-нить число левое(ясное дело - довольно маленькое) и покажи преподу. :D
Вот код:
i:integer;
begin
i:=0;
e:=1;
f:=1+e;
while f>1 do begin
inc(i);
e:=e/2;
f:=1+e;
end;
writeln('epsilon=',e);
writeln('iterations=',i);
end.
Можно делить не на 2, а на 10 - будет десятичный порядок. ;)
|
Скажи ему пусть для начала определится с конфигом компа.
Dart Bobr - 5! Креативная идея:пишем прогу которая
"вычисляет погрешность" а также "другие подобные характеристики" компа и показываем на ней на сколько амд круче.Ну или интел - в зависимости от того кто больше заплатит)))
Dart Bobr - 5! Креативная идея:пишем прогу которая
"вычисляет погрешность" а также "другие подобные характеристики" компа и показываем на ней на сколько амд круче.Ну или интел - в зависимости от того кто больше заплатит)))
что то форум хиреет... пора плюсовать как в FIDO за флейм в тематических разделах. модерится форум слабовато.
что то форум хиреет... пора плюсовать как в FIDO за флейм в тематических разделах. модерится форум слабовато.
Я бы сказал не модерится вообще...
что то форум хиреет... пора плюсовать как в FIDO за флейм в тематических разделах. модерится форум слабовато.
А еще достал флейм после того, как ответ на вопрос уже найден и всем сказали спасибо.
А еще достал флейм после того, как ответ на вопрос уже найден и всем сказали спасибо.
Как, например, сейчас :D