Ho notato che trovo molto più facile scrivere prove matematiche senza fare errori, piuttosto che scrivere un programma per computer senza bug. Sembra che questo sia qualcosa di più diffuso della mia esperienza. La maggior parte delle persone crea continuamente bug nel software durante la programmazione e ha il compilatore …
Per provare a verificare se un algoritmo per qualche problema è corretto, il solito punto di partenza è provare a eseguire l'algoritmo manualmente su una serie di semplici casi di test - provalo su alcuni casi esemplificativi, inclusi alcuni semplici "casi angolari" ". Questa è una grande euristica: è un …
Ho un algoritmo avido che sospetto possa essere corretto, ma non ne sono sicuro. Come posso verificare se è corretto? Quali sono le tecniche da utilizzare per dimostrare che un algoritmo avido è corretto? Ci sono modelli o tecniche comuni? Spero che questo diventerà una domanda di riferimento che può …
Ho due modi per produrre un elenco di articoli in un ordine casuale e vorrei determinare se sono ugualmente equi (imparziali). Il primo metodo che uso è quello di costruire l'intero elenco di elementi e quindi fare un riordino su di esso (diciamo un riordino Fisher-Yates). Il secondo metodo è …
Abbiamo la logica Hoare. Perché è ancora possibile che un algoritmo sia giusto ma non ci sono prove che sia corretto? Supponiamo che l'algoritmo sia espresso in C. Quindi possiamo argomentare passo dopo passo che sta facendo quello che dovrebbe fare. Quindi la mia domanda è: Fammi un esempio di …
Supponiamo stiamo dato due numeri lll e e che vogliamo trovare per l \ le i, \, j \ le r .rrrmax(i⊕j)max(i⊕j)\max{(i\oplus j)}l≤i,j≤rl≤i,j≤rl\le i,\,j\le r L'algoritmo ingenuo controlla semplicemente tutte le coppie possibili; ad esempio in ruby avremmo: def max_xor(l, r) max = 0 (l..r).each do |i| (i..r).each do |j| …
Questa dimostrazione è una dimostrazione per induzione ed è la seguente: P (n) è l'affermazione che "Quicksort ordina correttamente ogni array di input di lunghezza n." Caso di base: ogni array di input di lunghezza 1 è già ordinato (P (1) contiene) Fase induttiva: correzione n => 2. Correzione di …
Su Wikipedia , viene fornita un'implementazione per lo schema di programmazione dinamica dal basso verso l'alto per la distanza di modifica. Non segue completamente la definizione; le cellule interne sono calcolate così: if s[i] = t[j] then d[i, j] := d[i-1, j-1] // no operation required else d[i, j] := …
Originariamente su math.SE ma senza risposta lì. Considera il seguente algoritmo. u := 0 v := n+1; while ( (u + 1) is not equal to v) do x := (u + v) / 2; if ( x * x <= n) u := x; else v := x; end_if …
Sulla questione dell'insetto Heartbleed, Bruce Schneier scrisse nel suo Crypto-Gram del 15 aprile: "Catastrofico" è la parola giusta. Sulla scala da 1 a 10, questo è un 11. ' Ho letto diversi anni fa che un kernel di un determinato sistema operativo è stato rigorosamente verificato con un moderno sistema …
Dato un programma composto da variabili e istruzioni che modificano queste variabili e una primitiva di sincronizzazione (un monitor, mutex, java sincronizzato o C #'s lock), è possibile provare che un tale programma è thread-safe? Esiste persino un modello formale per descrivere cose come la sicurezza del filo o le …
Di recente ho discusso con un amico di un sito Web che proponeva sfide regex, principalmente abbinando un gruppo di parole a una proprietà speciale. Stava cercando una regex che corrispondesse a stringhe come ||||||||dove il numero di |è primo. Gli dissi immediatamente che non avrebbe mai funzionato perché se …
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.