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'è x
la prima banda per la prima cifra significativa, y
è la seconda banda per la seconda cifra significativa, z
la terza banda per il moltiplicatore ed t
è la quarta banda per la tolleranza .
Ognuno di xyzt
rappresenta 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, NKOg
c'è un resistore particolare.
La resistenza può essere calcolata con l'aiuto di questa tabella:
Come suggerisce la tabella:
x
ey
può essere qualsiasi lettera ad eccezioneg
,s
e_
.z
può essere qualsiasi cosa tranne_
.- Ci limitiamo
t
ad essere solog
,s
o_
.
La resistenza è moltiplicata per 10 * x + y
il z
moltiplicatore, fino a una tolleranza della t
percentuale.
Ad esempio, per calcolare la resistenza di
NKOg
, vediamo che:
N
significa Brown per 1.K
significa nero per 0.O
significa arancione per 10 3 .g
significa 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 xyzt
e stampa o restituisce la resistenza nel modulo [resistance] Ω ±[tolerance]%
.
- Il resistore può essere "capovolto", cioè nell'ordine inverso
tzyx
. Ad esempio, entrambiNKOg
egOKN
dovrebbero 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 (
x
ey
maigs_
;z
mai_
;t
sologs_
). - 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[
.