Sto leggendo un libro di testo per la mia classe Java III. Stiamo leggendo su Big-Oh e sono un po 'confuso dalla sua definizione formale.Big Oh Notation - definizione formale
Definizione formale: "Una funzione f (n) è di ordine al massimo g (n) - cioè, f (n) = O (g (n)) - se un numero reale positivo c e un numero intero positivo N esiste tale che f (n) < = cg (n) per tutti n> = N. Cioè, cg (n) è un limite superiore su f (n) quando n è sufficientemente grande. "
Ok, questo ha senso. Ma aspettate, continuate a leggere ... il libro mi ha dato questo esempio:
"Nel segmento 9,14, abbiamo detto che un algoritmo che utilizza 5n + 3 operazioni è O (n) Ora può mostrare. che 5n + 3 = O (n) utilizzando la definizione formale di Big Oh.
Quando n> = 3, 5n + 3 < = 5n + n = 6n. Quindi, se lasciamo che f (n) = 5n + 3, g (n) = n, c = 6, N = 3, abbiamo mostrato che f (n) < = 6 g (n) per n> = 3 o 5n + 3 = O (n). Cioè, se un algori thm richiede tempo direttamente proporzionale a 5n + 3, è O (n). "
Ok, questo tipo di ha senso per me. Dicono che se n = 3 o superiore, 5n + 3 richiede meno tempo rispetto a se n era minore di 3 - quindi 5n + n = 6n - giusto? Ha senso, poiché se n era 2, 5n + 3 = 13 mentre 6n = 12 ma quando n è 3 o maggiore 5n + 3 sarà sempre minore o uguale a 6n.
Ecco dove mi confondo. che mi danno un altro esempio:
Esempio 2: "Mostriamo che 4n^2 + 50N - 10 = O (n^2) E 'facile vedere che:. 4n^2 + 50N - 10 < = 4n^2 + 50n per ogni n da 50n < = 50n^2 per n
= 50, 4n^2 + 50N -. 10 < = 4n^2 + 50n^2 = 54n^2 per n> = 50. Quindi, con c = 54 e N = 50, abbiamo mostrato che 4n^2 + 50n - 10 = O (n^2). "
Questa affermazione non ha senso: 50N < = 50n^2 per n> = 50.
Non è alcun n andando a fare il 50N meno di 50 N^2? Non solo maggiore o uguale a 50? Perché hanno persino detto che 50n < = 50n^2? Cosa c'entra questo con il problema?
Inoltre, 4n^2 + 50n - 10 < = 4n^2 + 50n^2 = 54n^2 per n> = 50 sta per essere vero indipendentemente da n.
E come mai i numeri di prelievo mostrano che f (n) = O (g (n))?
Adrian grazie. Leggere la tua spiegazione ha reso tutto molto più chiaro. Dovresti essere un insegnante! – ShrimpCrackers