Las resistencias comúnmente tienen bandas codificadas por colores que se utilizan para identificar su resistencia en ohmios . En este desafío solo consideraremos las resistencias normales de 4 bandas, bronceado, de plomo axial. Los expresaremos como:
xyzt
Donde xestá la primera banda para la primera figura significativa, yes la segunda banda para la segunda figura significativa, zla tercera banda para el multiplicador, y tes la cuarta banda para la tolerancia .
Cada uno xyztrepresenta una letra que abrevia el color de la banda:
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
Entonces, por ejemplo, NKOges una resistencia particular.
La resistencia se puede calcular con la ayuda de esta tabla:
Como sugiere la tabla:
xyypuede ser cualquier letra A excepcióng,sy_.zpuede ser cualquier cosa excepto_.- Se restringirá
ta ser únicag,so_.
La resistencia es multiplicada por 10 * x + yel zmultiplicador, a una tolerancia del tporcentaje.
Por ejemplo, para calcular la resistencia de
NKOg, vemos que:
Nsignifica marrón para 1.Ksignifica negro para 0.Osignifica naranja para 10 3 .gsignifica oro para ± 5%.Entonces la resistencia es
(10*1 + 0)*10^3→10000 Ω ±5%.
Reto
Escriba un programa o función que tome una cadena de 4 caracteres del formulario xyzte imprima o devuelva la resistencia en el formulario [resistance] Ω ±[tolerance]%.
- La resistencia puede estar "al revés", es decir, en el orden inverso
tzyx. Por ejemplo, ambosNKOgygOKNdeberían producir10000 Ω ±5%. - La resistencia siempre está en ohmios simples, nunca kilohms, megaohms, etc.
Ωpuede ser reemplazado conohms, por ej10000 ohms ±5%.±puede ser reemplazado con+/-, por ej10000 Ω +/-5%.- Tener ceros a la derecha de un punto decimal está bien. (por ejemplo
10000.0 Ω +/-5%) - Puede suponer que la entrada siempre es válida (
xyynuncags_;znunca_;tsologs_). - Todos los 10 × 10 × 12 × 3 = 3600 resistencias posibles (2 × 3600 entradas posibles) deben ser compatibles, incluso si algunas combinaciones de bandas de color no se producen en la vida real.
El código más corto en bytes gana.
Ejemplos
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%
Si y sólo si usted disfruta de mis retos, considera chequear Módulo Bot rebaños!
fuente


:(2/'e*s~guarda el[.edonde es necesario, pero nunca pensé en/y*Python 3,
130114 byteseditar: @ Sp3000 señala que el orden se puede detectar mejor con (en
min(v,v[::-1])lugar dev[::(1,-1)[v[0]in'sg_']]ahorrar 10 bytes), no verificar el índice_y eliminar algunos espacios en blanco innecesarios.fuente
min()para detectar el orden correcto. Genial.Perl, 93 bytes
fuente
Haskell,
135 132130 bytesExplicación:
Gracias a nimi, eliminé otros 2 bytes.
fuente