Я работаю программистом, но у меня нет опыта в области компьютерных наук, поэтому недавно я следил за отличным введением MIT OpenCourseWare в области компьютерных наук и программирования. В ходе которого задается вопрос: "будет ли любая программа, написанная с использованием только определений функций и вызовов, базовых арифметических операторов, присваивания и условных выражений выполняется в постоянное время?"
Я думал, что ответ был да, так как все эти операции кажутся довольно простыми. Но, как вы, наверное, уже знали умные люди, правильного ответа не было, по-видимому, из-за возможности бесконечной рекурсии.
Похоже, я просто не понимаю последствий "в постоянное время". То, как я представлял смысл, казалось, что это просто означает, что простая операция займет определенное количество времени. Я согласен с тем, что рекурсия может привести к тому, что ваша программа будет работать вечно, но не отдельные операции, которые все еще занимают конечное и измеримое количество времени каждый... даже если их бесконечное количество? Или ответ просто означает, что две бесконечно рекурсивные программы не могут считаться выполненными за такое же количество времени?
Если кто-то может дать мне авторитетное определение "в постоянное время" и последствия этого, я был бы очень благодарен!