Domanda

Il destinatario è il mio sito web, il mittente è lo stesso ma il mezzo è rumoroso, un utente. Leggerà un codice alfanumerico di lunghezza 6 e successivamente inserirà lo stesso codice per identificare una risorsa. Un buon uso per un codice di correzione degli errori, ho pensato, e piuttosto che fare la ricerca ho pensato di porre la domanda lì. Oppure potrei farlo nel modo sbagliato, poiché la situazione è piuttosto come inviare un dizionario perfetto insieme a ogni trasmissione.

I requisiti del codice sono semplicemente:

  1. 6 cifre alfanumeriche, per cominciare finché non finisco, comunque.
  2. Se l'utente sbaglia, dovrei comunque essere in grado di identificare la risorsa giusta.
  3. Nessuna risorsa è preferibile a quella sbagliata.
  4. Facile da codificare o avere librerie gratuite per .net

Qualche suggerimento?

Modifica:

Mi sembra che la metà dei requisiti possa essere soddisfatta scegliendo i codici con saggezza, cioè con una distanza sufficiente tra loro. Questa strategia sembra ancora migliore quando mi rendo conto che più tempo è passato da quando i codici sono stati generati, più è improbabile che vengano utilizzati.

I codici non verranno digitati direttamente nel mio sito web, quindi non posso fornire un feedback immediato. In realtà, possiamo presumere che a meno che non riesca a verificare il codice non riesco nemmeno a identificare l'utente, quindi non posso davvero fornire alcun feedback.

È stato utile?

Soluzione

Beh, no, il tuo primo approccio all'ordine dovrebbe essere quello di verificare se l'utente ha inserito il numero corretto. Un errore di digitazione umano di un numero o di una stringa è il 99% del problema. Ciò è ben consolidato nella pratica, la cifra di controllo è utilizzata in molti codici comuni, dove UPC e ISBN sono quelli che vedresti tutti i giorni. Puoi contrassegnarlo, possono riscriverlo di nuovo.

Anche i codici di correzione degli errori sono comuni ma hanno un'applicazione molto diversa. Tradizionalmente è utilizzato nei mezzi di segnalazione digitale , allo scopo di rilevare e correggere errori di bit. Reed-Solomon è il gorilla da cento libbre lì, davvero messo sulla mappa dal CD musicale.

Questo non funziona davvero bene nella pratica con un essere umano, introdurranno almeno 6 bit di dati errati digitando male una chiave. È molto difficile da correggere, dovresti aggiungere moltissimi bit di ridondanza alle lettere adiacenti, rendendo più probabile che il codice venga digitato male. Il modo migliore per ottenere codici leggibili dall'uomo è che il codice abbia senso per un essere umano. Qualcosa che attiva la risposta "sembra sbagliato ". Come un nome, a patto che tu non sia il figlio di Frank Zappa. Ma per il resto la base di codici come lettera-lettera + numeri. Eccetera.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top