Некоторые программисты не видят значительной значимости в теоретических классах CS (особенно мои ученики). Вот что я считаю очень актуальным. Позвольте мне собрать его на куски для тех, кто не видел его раньше...
A) Проблемы программирования могут быть переформулированы как вопросы о языках.
B) Машины Turing распознают языки.
C) Машины Turing могут быть закодированы как (большие) целые числа.
D) Поэтому число возможных машин Тьюринга счетно бесконечно
E) Набор мощности набора - это всего лишь все возможные подмножества этого множества.
F) Если множество счетно бесконечно, его множество мощности больше, т.е. несчетно бесконечно.
G) Поэтому, если язык бесконечен, он имеет бесчисленное множество подмножеств. Каждая из них представляет проблему. Но есть только множество машин Тьюринга, с помощью которых можно решить эти проблемы. И если мы не сможем решить проблему с машиной Тьюринга, она не может быть решена.
Заключение... мы можем разрешить бесконечно малую долю всех проблем.
Мой вопрос почти здесь...
Всякий раз, когда я представляю этот аргумент ученикам, они застряли на счетном и бесчисленном бесконечном. Как правило, они не имеют сильного математического фона, поэтому попытки объяснить через аргумент диагонализации Кантора имеют тенденцию гладить их глаза.
Обычно я пытаюсь дать им то, что они могут понять, например... поставьте конечную коробку на любую часть строки счетного числа, и мы фиксируем конечное количество этих чисел... но поместите конечную коробку над любая часть строки действительного числа, и мы фиксируем бесконечное количество действительных чисел. Доказательство того, что там больше действительных чисел, чем подсчет чисел.
Наконец, мой вопрос... Как вы объясняете концепцию множественных уровней бесконечности тем, кто никогда не слышал об этом понятии и не может быть математически склонным?
Final Edit: Я многому научился, задав этот вопрос, и я ценю отзывы. Я потратил слишком много времени, пытаясь выяснить, что такое "Вики-сообщество" на самом деле. Я узнал, что у некоторых людей есть неотъемлемая предвзятость в отношении вопросов теории, которые, как я чувствую, являются просто ошибкой, потому что так много того, что мы делаем сегодня, было теорией вчера. Но это смещение естественное, и, хотя я не согласен с ними в отношении теории, у меня нет проблем с этим, и это помогает мне понять, откуда идут мои ученики. Я действительно думаю, что комментарий BS не нужен.
Я не считаю, что этот вопрос вообще был опросом или вопросом об исключениях для 2009 года. Те из вас, кто хочет только кодировать вопросы с ответами на кодирование, могут захотеть пересмотреть это требование. Я переместил этот вопрос на wiki сообщества, но сильно чувствую, что я был вынужден сделать это ненадлежащим применением силы.