Взяв пример, чтобы уточнить, скажем, у меня есть программа, которая принимает два входа от пользователя, a и b. Программа увеличивает a и уменьшает b. Программа возвращает значение, при котором значения a и b становятся равными. Следовательно, a должно быть меньше и b должно быть больше. Но что, если пользователь вводит противоположное? a как больше, так и b меньше? Очевидно, программа пойдет в бесконечный цикл. Но предположим, что я хочу, чтобы программа вернула, что «эти два номера никогда не могут встретиться». Тогда как я могу это проверить? Пожалуйста, не отвечайте на эту проверку номеров и отвечайте соответственно. Это просто пример. Я хочу знать, как проверить условие, которое никогда не может быть выполнено.Как проверить состояние, которое никогда не выполняется?
Другой пример, скажем, сравнение двух чисел. Предположим, у меня есть два числа, и я продолжаю их рандомизировать. Программа должна возвращать true, когда они равны и ложны, когда они не являются. Он не должен входить в бесконечный цикл, когда числа не равны. Я могу только сравнивать числа в каждой итерации и возвращать true, как только они будут равны. Но есть вероятность, что они никогда не станут равными, и программа никогда не прекратится. Как проверить такой сценарий и вернуть что-то вроде чисел, никогда не может быть равным.
Непонятно, re спрашивать здесь. Вы ищете универсальный способ проверки входных данных, которые могут привести к тому, что ваша проблема не прекратится? Это проблема [проблема остановки] (http://en.wikipedia.org/wiki/Halting_problem), для которой нет общего решения. –
Я думаю, что вы в значительной степени ответили на ваш вопрос. * a должно быть меньше, а b должно быть больше. * Поэтому, если 'a' больше, чем' b', тогда условие никогда не будет истинным, и поэтому оно будет работать бесконечно. –
Продолжается исследование по проблеме http://en.wikipedia.org/wiki/Halting_problem! – synthesizerpatel