Scopo
L'idea è di fornire il codice necessario per mappare un numero intero a 32 bit a / da una parola pronunciabile di massimo 9 caratteri. Ciò potrebbe essere utile, ad esempio, per semplificare la memorizzazione di un numero seriale o digitare un modulo.
Sono richiesti sia il metodo per tradurre un numero intero nella parola corrispondente sia per tradurre una parola nel numero intero corrispondente.
Regole
Deve esserci un mapping uno a uno tra numeri interi e parole e l'intero set di numeri interi a 32 bit (o, in altre parole, qualsiasi numero intero compreso tra 0 e 4294967295) deve essere mappabile. Sebbene, ovviamente, non tutte le parole siano significative e l'immissione di parole che non corrispondono a un numero intero può avere un comportamento non specificato.
Sei libero di decidere esattamente quale insieme di parole "pronunciabili" è significativo e come viene eseguita la mappatura, ma le parole devono almeno seguire queste regole:
- Solo le 26 lettere di base (A ... Z) dovrebbero essere usate come caratteri. Accenti, involucri, ecc ... non devono essere utilizzati per estendere le possibili combinazioni.
- Massimo 9 caratteri per parola.
- due consonanti (BCDFGHJKLMNPQRSTVWXZ - 20 possibilità) non devono essere posizionate una accanto all'altra (devono essere circondate da vocali).
- due vocali (AEIOUY - 6 possibilità) non devono essere posizionate l'una accanto all'altra (devono essere circondate da consonanti).
Nota: lo schema più semplice in cui tutte le parole sono costruite come CVCVCVCVC( Cessendo una consonante e Vuna vocale) fornisce 4147200000 combinazioni e un numero intero a 32 bit ha 4294967296 valori possibili, quindi non è sufficiente. È necessario espandere il numero di combinazioni, sia consentendo parole più brevi, sia consentendo anche le VCVCVCVCVcombinazioni.
Si applicano altre regole standard e sono vietate le scappatoie standard.
Entrate uscite
Per ogni invio, devono essere fornite due parti di codice:
- Uno che accetta un numero intero come argomento / input e restituisce / stampa la parola corrispondente
- Uno che accetta una parola come argomento / input e restituisce / stampa il numero intero corrispondente
In alternativa, puoi scegliere di inviare un singolo pezzo di codice che gestisce entrambe le operazioni:
- Quando viene fornito un numero intero come input, genera la parola corrispondente
- Quando viene fornita una stringa come input, genera l'intero corrispondente
Condizioni vincenti
Questo è un code-golf , la risposta che ha il minor numero di byte (quando si sommano entrambi i pezzi di codice, per soluzioni che optano per i pezzi di codice separati) vince.