Чому існує більше не обчислюваних функцій, ніж обчислюваних?


29

Зараз я читаю книгу за алгоритмами та складністю. На даний момент я читаю про обчислювані та не обчислювані функції, і моя книга зазначає, що існує набагато більше функцій, які не обчислюються, ніж обчислювані, насправді більшість не обчислюється. В якомусь сенсі я інтуїтивно можу це прийняти, але книга не дає офіційного підтвердження, а також не дуже детально розглядає цю тему.

Я просто хотів побачити доказ / нехай хтось тут детальніше розробить це / зрозуміти більш чітко, чому існує так багато більше не обчислюваних функцій, ніж обчислювані.


Порівнюючи дві нескінченні множини, семантику "більше" треба переглянути.
Рафаель

Відповіді:


31

Є лічильно безліч обчислюваних функцій:

Кожна обчислювана функція має щонайменше один алгоритм. Кожен алгоритм має кінцевий опис, використовуючи символи з кінцевого набору, наприклад, кінцеві бінарні рядки з використанням символів {0,1} . Кількість кінцевих двійкових рядків, позначених {0,1} можна зарахувати (тобто таке ж, як число натуральних чисел N ).

c{0,1}f(x)=c

Іншими словами, існує відповідність між:

  • набір обчислюваних функцій,
  • набір алгоритмів,
  • {0,1}{0,1}
  • N

f:NNf:{0,1}{0,1}NN=2N

2N

N<2N


NN=2N

Це кардинальна арифметика. Напишіть натуральні числа у нескінченній послідовності натуральних чисел у двійкових, що повинно давати інтуїцію.
Kaveh

Чому це припущення є істинним - "Кожен алгоритм має кінцевий опис, використовуючи символи з кінцевого набору"? Чому алгоритм не може мати нескінченний опис?
Roland Pihlakas

@RolandPihlakas, що є частиною визначення алгоритму (якщо ви хочете, комп'ютерної програми).
Каве

9

K

F={f:N{0,1}:xN,f(2x)=K(x)}.
fFF

R

G={g:N{0,1}:nNmn,g(m)=R(m).}
gGRGG

Отже, існує безліч не обчислюваних функцій, оскільки у нас є "нескінченно багато" ступенів свободи - фактична нескінченність, а не "потенційна" нескінченність, як у випадку, що обчислюється.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.