Les résistances ont généralement des bandes codées par couleur qui sont utilisées pour identifier leur résistance en Ohms . Dans ce défi, nous ne considérerons que les résistances normales à 4 bandes, bronzage et plomb axial. Nous les exprimerons comme:
xyzt
Où xest la première bande pour le premier chiffre significatif, yest la deuxième bande pour le deuxième chiffre significatif, zla troisième bande pour le multiplicateur, et test la quatrième bande pour la tolérance .
Chacun xyztreprésente une lettre qui abrège la couleur de la bande:
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
Ainsi, par exemple, NKOgest une résistance particulière.
La résistance peut être calculée à l'aide de ce tableau:
Comme le suggère le tableau:
xetypeut être des lettres , à l' exceptiong,set_.zpeut être tout sauf_.- Nous bloquons
têtre seulementg,sou_.
La résistance est multipliée par 10 * x + yle zmultiplicateur, jusqu'à une tolérance du tpourcentage.
Par exemple, pour calculer la résistance de
NKOg, on voit que:
Nsignifie Brown pour 1.Ksignifie noir pour 0.Osignifie Orange pour 10 3 .gsignifie or pour ± 5%.La résistance est donc
(10*1 + 0)*10^3→10000 Ω ±5%.
Défi
Écrivez un programme ou une fonction qui prend une chaîne de 4 caractères du formulaire xyztet imprime ou renvoie la résistance dans le formulaire [resistance] Ω ±[tolerance]%.
- La résistance peut être "à l'envers", c'est-à-dire dans l'ordre inverse
tzyx. Par exemple, les deuxNKOgetgOKNdevraient produire10000 Ω ±5%. - La résistance est toujours en ohms simples, jamais en kilohms, en mégohms, etc.
Ωpeut être remplacé parohms, par exemple10000 ohms ±5%.±peut être remplacé par+/-, par exemple10000 Ω +/-5%.- Avoir des zéros de fin à droite d'un point décimal est très bien. (par exemple
10000.0 Ω +/-5%) - Vous pouvez supposer que l'entrée est toujours valide (
xetyjamaisgs_;zjamais_;tseulementgs_). - Toutes les résistances 10 × 10 × 12 × 3 = 3600 possibles (2 × 3600 entrées possibles) doivent être prises en charge même si certaines combinaisons de bandes de couleurs ne sont pas produites dans la vie réelle.
Le code le plus court en octets gagne.
Exemples
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%
Ssi vous apprécierez mes défis, pensez à vérifier Building Block Bot Troupeaux!

:(2/'e*s~enregistre le[.