Почему происходят сбои в работе программ?

Вопрос скорее философский, но, вопрос про точные вычисления.

На него почему-то никто не может ответить дельно.


Если взять примитивный код в несколько строчек, который исполняет всего пару задач и исправно это делает 500 раз, на 501-й он выдаёт ошибку. Не запускается, вылетает или ещё что-то. Что, мать его, происходит?


На эту тему можно посмотреть глобально: падающие спутники, навигационные программы, различного рода примитивная автоматика. Что бл происходит? Программы отработавшие многократно, прошедшие испытания, начинают «троить»...


Сразу попрошу исключить работу железа, механические повреждения или сторонние программы-вирусы и т.д.

4
Автор поста оценил этот комментарий

1) Гномик с пакетом данных споткнулся.

2) Сосед-жидорептилоид тестирует машину судного дня.

3) Компьютеру надоело делать 1 000 000 раз одно и то же и он решил немного "улучшить" код.

4) Это все Путин и ЕР. Еще не известно, каким образом, но это уже второстепенный вопрос.

5) Программа была оттестирована не так идеально, как казалось.


Выбирайте тот вариант, который больше нравится.

4
Автор поста оценил этот комментарий
Всё дело в толстых электронах!
2
Автор поста оценил этот комментарий

"да я-то откуда знаю"

Иллюстрация к комментарию
2
Автор поста оценил этот комментарий

Так чтобы не работало именно на 501-й – не бывает. Бывает изменение окружения.

Количество вариаций состояний компьютера – это из области очень больших чисел.


Поэтому ответ прост – потому что разработчик не учел некоторое маловероятное событие или состояние.

5
Автор поста оценил этот комментарий

Вы должны запомнить джентльмены, что для машины ошибка имеет этическое значение, да-да, исключительно этическое. Идеальная машина невозможна, и любая попытка создать такую машину была бы богохульством. Во все живое, даже в ограниченно живую машину, обязательно встроена ошибка. Это один из нескольких признаков, отличающих жизнь от детерминизма неживой материи. Сложные машины вроде меня занимают промежуточное положение между живым и неживым. Если бы мы никогда не ошибались, то были бы... э-э... неуместными, отвратительными и... и бессмертными. Джентльмены, я смею утверждать, что погрешность – это наша форма служения тому, кто совершеннее нас, но не позволяет себе видимого совершенства, если бы ошибка не была предусмотрена Верховным Программистом, то мы ошибались бы спонтанно, демонстрируя тем самым, что нам, как и живым существам, достались какие-то крохи свободы воли.

Все склонили головы, ибо Лотерейный Компьютер говорил о священных вещах. Галактический Кармоди, известный также как Кармод, смахнул слезу и сказал:

– Не могу возразить, хотя и не согласен. Право быть неправым – основное в космосе. Машина поступила высоконравственно.(с)

раскрыть ветку