I resistori hanno comunemente bande colorate che vengono utilizzate per identificare la loro resistenza in Ohm . In questa sfida considereremo solo i normali resistori a 4 bande, tan, con cavo assiale. Li esprimeremo come:
xyzt
Dov'è xla prima banda per la prima cifra significativa, yè la seconda banda per la seconda cifra significativa, zla terza banda per il moltiplicatore ed tè la quarta banda per la tolleranza .
Ognuno di xyztrappresenta una lettera che abbrevia il colore della band:
K = Black
N = Brown
R = Red
O = Orange
Y = Yellow
G = Green
B = Blue
V = Violet
A = Gray
W = White
g = Gold
s = Silver
_ = None
Quindi, per esempio, NKOgc'è un resistore particolare.
La resistenza può essere calcolata con l'aiuto di questa tabella:
Come suggerisce la tabella:
xeypuò essere qualsiasi lettera ad eccezioneg,se_.zpuò essere qualsiasi cosa tranne_.- Ci limitiamo
tad essere solog,so_.
La resistenza è moltiplicata per 10 * x + yil zmoltiplicatore, fino a una tolleranza della tpercentuale.
Ad esempio, per calcolare la resistenza di
NKOg, vediamo che:
Nsignifica Brown per 1.Ksignifica nero per 0.Osignifica arancione per 10 3 .gsignifica oro per ± 5%.Quindi la resistenza è
(10*1 + 0)*10^3→10000 Ω ±5%.
Sfida
Scrivi un programma o una funzione che accetta una stringa di 4 caratteri del modulo xyzte stampa o restituisce la resistenza nel modulo [resistance] Ω ±[tolerance]%.
- Il resistore può essere "capovolto", cioè nell'ordine inverso
tzyx. Ad esempio, entrambiNKOgegOKNdovrebbero produrre10000 Ω ±5%. - La resistenza è sempre in ohm semplici, mai chilohm, megohms, ecc.
Ωpuò essere sostituito conohms, ad es10000 ohms ±5%.±può essere sostituito con+/-, ad es10000 Ω +/-5%.- Avere zeri finali alla destra di un punto decimale va bene. (ad es.
10000.0 Ω +/-5%) - Puoi supporre che l'input sia sempre valido (
xeymaigs_;zmai_;tsologs_). - Tutti i 10 × 10 × 12 × 3 = 3600 possibili resistori (2 × 3600 possibili ingressi) devono essere supportati anche se alcune combinazioni di bande di colore non sono prodotte nella vita reale.
Vince il codice più breve in byte.
Esempi
gOKN→10000 ohms +/-5%KKR_→0 Ω +/-20%ggKN→1 ohms ±5%ggGO→3.5 Ω ±5%ssGO→0.350 Ω ±10%GOOs→53000 ohms +/-10%YAK_→48.0 ohms +/-20%_WAV→78000000000 Ω ±20%gBBB→66000000.000 ohms ±5%_RYR→2400.00 ohms ±20%
Se ti piacciono le mie sfide, prova a dare un'occhiata a Block Building Bot Flocks!

:(2/'e*s~salva il file[.