Desafío
Dada una lista de unidades base SI, una lista de ecuaciones y un objetivo, debe derivar las unidades del objetivo utilizando solo las unidades base.
Unidades derivadas
De Wikipedia:
El Sistema Internacional de Unidades (SI) especifica un conjunto de siete unidades base de las cuales se derivan todas las demás unidades de medida del SI. Cada una de estas otras unidades (unidades derivadas del SI) es adimensional o puede expresarse como un producto de potencias de una o más de las unidades base.
Por ejemplo, la unidad de área derivada del SI es el metro cuadrado (m 2 ), y la unidad de densidad derivada del SI es el kilogramo por metro cúbico (kg / m 3 o kg m −3 ).
Las siete unidades base del SI son:
- Amperio, A
- Candela, cd
- Kelvin, K
- Kilogramo, kg
- Metro, m
- Topo, mol
- Segundo, s
Ejemplo
Entrada
Unidades base:
d [m]
m [kg]
t [s]
Ecuaciones:
v = d/t
a = v/t
F = m*a
E = F*d
Objetivo:
E
Salida
E [kg*m*m/s/s]
Entrada
Unidades base:
G [cd]
L [m]
y [A]
a [K]
Ecuaciones:
T = y*y/L
A = T*G
Objetivo:
A
Salida
A [cd*A*A/m]
Reglas
Las unidades siempre se entregarán en la forma
a [b]
Donde a
habrá una sola letra alfabética en mayúscula o minúscula y b
será una unidad (uno o más caracteres).
La ecuación tendrá la forma
a = c
Donde c
habrá una expresión que solo usará unidades previamente definidas y los operadores *
y /
.
Los poderes deben ser ampliados. Por ejemplo, la unidad de área es oficialmente m^2
, pero debe representar esto como m*m
. Lo mismo se aplica a potencias negativas tales como la velocidad ( m*s^-1
), que deben ser representados como una división: m/s
. Del mismo modo, las unidades de aceleración, m/s^2
o m*s^-2
, deben representarse como m/s/s
.
No tiene que cancelar nada. Por ejemplo, una salida C*s/kg/s
es válida aunque puede cancelarse a C/kg
.
No hay un orden específico para la multiplicación: kg*s/m
, s/m*kg
, s*kg/m
son todos válidos (pero /m*s*kg
no es válido).
Nota: nunca tendrá que dividir por una unidad derivada.
Victorioso
El código más corto en bytes gana