Questa affermazione dagli algoritmi fondamentali di Knuth è ancora applicabile oggi? [chiuso]


10

In un certo senso, 10! (dieci fattoriale) rappresenta una linea di demarcazione approssimativa tra cose pratiche da calcolare e cose che non lo sono.

Questo è tratto dal libro TAOCP Fundamental Algorithms di Knuth (1973). È ancora una dichiarazione valida o la potenza di calcolo l'ha resa obsoleta?


Non mi è chiaro in che senso sia mai stato vero - 10! è solo pochi milioni. Troppo grande per la comprensione diretta, ma non particolarmente difficile da calcolare, anche con carta e penna.
Hobbs

11
@hobbs non sta parlando di calcolare il valore di 10 !, sta parlando di fare calcoli su circa 10! cose . Cioè, se il tuo metodo richiede più di circa 10! <unità di lavoro>, è tempo di trovare un nuovo metodo.
AakashM,

Risposte:


21

È ancora ragionevole.

10! = 3.628.880. Ogni passo successivo sale di ALMENO un ordine di grandezza.

(fact 10)
3628800

(fact 11)
39916800 -- about 40 million

(fact 12)
479001600 -- almost 500 million

(fact 13.0)
6227020800.0 -- over 6 billion

Molto presto, stai parlando dei numeri di spesa del Congresso.


15

Il buon professore è, fortunatamente, ancora con noi e il modo migliore per accertare una risposta definitiva è scriverlo e chiedere la sua opinione.

Detto questo, non credo che il numero assoluto contenga tanto quanto la funzione rappresentata dai fattoriali. Che Knuth se ne rendesse conto o meno in quel momento, il modello da lui stabilito con quella dichiarazione funziona molto bene per guardare indietro a ciò che era pratico da calcolare nei decenni precedenti e in avanti attraverso quelli che seguirono.

Nel 1973, la nostra capacità di generare, archiviare, trasferire ed elaborare dati era abbastanza limitata da fare 10! una figura ragionevole "lontano" per cui sparare. Dubito che Knuth (o chiunque altro, per quella materia) sarebbe stato in grado di prevedere i miglioramenti esponenziali in quasi tutto ciò che ci è piaciuto da allora, ma i fattoriali si sono adattati bene ai numeri reali.

L'ho visto in prima persona: un decennio fa, ho lavorato a un progetto in cui stavamo sviluppando modi per archiviare ed elaborare circa 50 milioni di dischi, riflettendo allo stesso tempo su come faremmo un ordine di grandezza in più. Un decennio dopo, sto facendo un progetto simile. Le mie figure target sono cambiate, tutto in modo fattoriale:

                      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

I gruppi che eseguono entrambi i progetti hanno bandito figure molto più rotonde di quelle, ma i fattoriali non sono molto lontani. I googles e Facebook di tutto il mondo hanno le risorse per fare il genere di cose che il mio progetto attuale sogna solo, ma da dove mi siedo, 13!in un decennio o meno non sembra così lontano.

Non stavo pensando a grandi quantità di dati nel 1992, ma col senno di poi dice che probabilmente avrei guardato tutto con un fattoriale in meno.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.