Un algoritmo è una sequenza di passaggi ben definiti che definisce una soluzione astratta a un problema. Utilizzare questo tag quando il problema è correlato alla progettazione e all'analisi degli algoritmi.
Ho usato più volte la tecnica della programmazione dinamica, ma oggi un amico mi ha chiesto come definire i miei sotto-problemi, ho capito che non avevo modo di fornire una risposta formale obiettiva. Come definisci formalmente un sotto-problema per un problema che risolveresti usando la programmazione dinamica?
So codificare per fattoriali usando sia iterativi che ricorsivi (ad n * factorial(n-1)es. Per es.). Ho letto in un libro di testo (senza ulteriori spiegazioni) che esiste un modo ancora più efficiente di codificare i fattoriali dividendoli a metà in modo ricorsivo. Capisco perché potrebbe essere così. Tuttavia, volevo provare …
Ho esaminato la matematica dietro la conversione da qualsiasi base a qualsiasi base. Si tratta più di confermare i miei risultati che altro. Ho trovato quella che sembra essere la mia risposta su mathforum.org ma non sono ancora sicuro di averla bene. Ho la conversione da una base più grande …
Ho problemi a trovare buone risorse che danno il peggior caso in atto algoritmo di ordinamento stabile . Qualcuno sa di buone risorse?O ( n lnn )O(nlnn)O(n \ln n) Solo un promemoria, sul posto significa che utilizza l'array passato e che l'algoritmo di ordinamento è autorizzato a utilizzare solo spazio …
Sono nuovo a comprendere gli algoritmi di informatica. Capisco il processo della ricerca binaria, ma sto riscontrando un leggero fraintendimento con la sua efficienza. In una dimensione di elementi, sarebbero necessari, in media, n passaggi per trovare un elemento particolare. Prendendo il logaritmo di base 2 di entrambi i lati …
Ecco lo pseudocodice standard per la prima ricerca della larghezza: { seen(x) is false for all x at this point } push(q, x0) seen(x0) := true while (!empty(q)) x := pop(q) visit(x) for each y reachable from x by one edge if not seen(y) push(q, y) seen(y) := true Qui …
Qualcuno può suggerire un algoritmo di tempo lineare che prende in ingresso un diretto aciclico grafo e due vertici s e t e restituisce il numero di semplici percorsi da s a t in G . Ho un algoritmo in cui eseguirò un DFS (Depth First Search) ma se DFS …
Mi chiedo se esiste un modo standard per misurare la "ordinamento" di un array? Un array che ha il numero medio di possibili inversioni sarebbe considerato al massimo indifferenziato? Con ciò voglio dire che è sostanzialmente il più lontano possibile dall'essere ordinati o in ordine inverso.
Nel suo seminario del 1987 Dana Angluin presenta un algoritmo temporale polinomiale per l'apprendimento di un DFA da domande di appartenenza e domande di teoria (controesempi a un DFA proposto). Mostra che se stai cercando di imparare un DFA minimo con stati, e il tuo più grande esempio di countex …
Esiste una differenza fondamentale tra la programmazione dinamica top-down e bottom-up? In particolare, esiste un problema che può essere risolto dal basso verso l'alto ma non dall'alto verso il basso? Oppure l'approccio bottom-up è solo una svolta della ricorrenza nell'approccio top-down?
È noto che questo algoritmo 'ingenuo' per mescolare un array scambiando ogni elemento con un altro scelto casualmente non funziona correttamente: for (i=0..n-1) swap(A[i], A[random(n)]); In particolare, poiché a ciascuna delle iterazioni viene fatta una delle scelte (con probabilità uniforme), ci sono possibili "percorsi" attraverso il calcolo; perché il numero …
Scusa in anticipo se questa domanda sembra stupida ... Per quanto ne so, la creazione di un algoritmo utilizzando la programmazione dinamica funziona in questo modo: esprimere il problema come relazione di ricorrenza; attuare la relazione di ricorrenza tramite memoizzazione o un approccio dal basso verso l'alto. Per quanto ne …
Non sono nemmeno uno studente CS, quindi questa potrebbe essere una domanda stupida, ma per favore abbi pazienza con me ... Nell'era pre-computer, possiamo implementare solo una struttura di dati array con qualcosa come una matrice di cassetti. Poiché è necessario individuare il cassetto con l'indice corrispondente prima di estrarre …
Questo programma a 579 bit nel calcolo binario Lambda ha uno stato di arresto sconosciuto: 01001001000100010001000101100111101111001110010101000001110011101000000111001110 10010000011100111010000001110011101000000111001110100000000111000011100111110100 00101011000000000010111011100101011111000000111001011111101101011010000000100000 10000001011100000000001110010101010101010111100000011100101010110000000001110000 00000111100000000011110000000001100001010101100000001110000000110000000100000001 00000000010010111110111100000010101111110000001100000011100111110000101101101110 00110000101100010111001011111011110000001110010111111000011110011110011110101000 0010110101000011010 Cioè, non è noto se questo programma termina o meno. Per determinarlo, devi risolvere la congettura di Collatz - o, almeno, per tutti i numeri fino a …
Sto cercando aiuto per comprendere l'algoritmo di rilevamento del ciclo di Floyd. Ho esaminato la spiegazione su wikipedia ( http://it.wikipedia.org/wiki/Cycle_detection#Tortoise_and_hare ) Vedo come l'algoritmo rileva il ciclo nel tempo O (n). Tuttavia, non sono in grado di visualizzare il fatto che una volta che i puntatori di tartaruga e lepre …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.