Чи застосовується ця заява з основних алгоритмів Кнута і сьогодні? [зачинено]


10

У певному сенсі 10! (десять факторіальних) являє собою приблизну межу між речами, практичними для обчислення, і речами, які ні.

Це з книги фундаментальних алгоритмів TAOCP (1973) Кнута. Це все-таки дійсне твердження чи обчислювальна потужність заставила його застарілим?


Мені не ясно, в якому сенсі це колись було правдою - 10! це лише кілька мільйонів. Занадто великий для прямого розуміння, але не особливо важкий для обчислення, навіть із ручкою та папером.
варення

11
@hobbs це не мова про обчислення значення 10!, це про обчислення приблизно на 10! речі . Тобто, якщо ваш метод вимагає більше приблизно 10! <одиниці роботи>, час знайти новий метод.
AakashM

Відповіді:


21

Це все-таки розумно.

10! = 3,628,880. Кожен крок після цього піднімається НАЙКРАЩЕ на порядок.

(fact 10)
3628800

(fact 11)
39916800 -- about 40 million

(fact 12)
479001600 -- almost 500 million

(fact 13.0)
6227020800.0 -- over 6 billion

Досить скоро ви говорите про кількість витрат у Конгресі.


15

Хороший професор, на щастя, все ще з нами, і найкращий спосіб визначити остаточну відповідь - написати його і запитати його думку.

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

У 1973 році наша спроможність генерувати, зберігати, передавати та обробляти дані була обмежена, щоб зробити 10! розумну фігуру "далекого краю", для якої слід стріляти. Я сумніваюся, що Кнут (або хтось інший, з цього приводу) міг би передбачити експонентні поліпшення майже усього, чим ми насолоджувались відтоді, але фабриканти добре помістили фактичну кількість.

Я це бачив з перших вуст: Десять років тому я працював над проектом, де ми розробляли способи зберігання та обробки приблизно 50 млн записів, в той же час розмірковуючи над тим, як би ми зробили на порядок більше. Через десятиліття я роблю подібний проект. Мої цільові цифри змінилися, все факторно:

                      2002           2012
Small Test .......  9! / 362K ... 10! / 3.6M
Large Test ....... 10! / 3.6M ... 11! /  40M
Capacity Goal .... 11! /  40M ... 12! / 479M
Capacity Dream ... 12! / 479M ... 13! / 6.3B

Групи, що займаються обома проектами, перебувають у більшій мірі, ніж ті, але фабрики не так вже й далеко. У світі Google Googles та Facebooks є ресурси для того, щоб робити такі речі, про які мріє мій поточний проект, але те, де я сиджу, 13!через десятиліття чи менше, не здається далеко недосяжним.

Я не замислювався про велику кількість даних у 1992 році, але заднім числом, напевно, було б все, що було на фабриці.

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