Escriba un programa o una función que tome dos listas no vacías de la misma longitud que la entrada y haga lo siguiente:
- usa elementos de la primera lista para obtener numeradores,
- usa elementos de la segunda lista para obtener denominadores,
- muestra las fracciones resultantes después de la simplificación
(2/4=>1/2)
, separadas por "+" s, - muestra "=" y el resultado de la suma después de la última fracción.
Ejemplo:
Entrada
[1, 2, 3, 3, 6]
[2, 9, 3, 2, 4]
Salida
1/2+2/9+1+3/2+3/2=85/18
Acerca de las reglas
- los elementos de las listas serán enteros positivos,
- los elementos se pueden separar por espacios, por ejemplo:
1/2 + 2/9 + 1 + 3/2 + 3/2 = 85/18
está bien, - se permite la nueva línea final,
- las listas se pueden tomar en otros formatos que no sean los anteriores, por ejemplo:
(1 2 3 3 6)
o{1;2;3;3;6}
, etc., 1
puede expresarse como1/1
,- en lugar de imprimir, puede devolver la cadena apropiada,
- no es necesario manejar una entrada incorrecta,
- el código más corto gana .
[1, 2] [2, 9] [3, 3] ...
lugar?Respuestas:
M ,
1211 bytesEste es un enlace diádico. Debido a un error, no funciona como un programa completo.
F
También es necesario debido a un error.Pruébalo en línea!
Cómo funciona
fuente
Ruby 2.4,
5453 caracteresGracias a:
Rational
inicialización (-1 carácter)Ruby,
585756 caracteresEjecución de muestra:
Pruébalo en línea!
fuente
a=n.zip(d).map{|f|(f*?/).to_r};a*?++"=#{a.sum}"
en Ruby 2.4 te ahorra 3 bytes.sum
jaja. También recordé que.map{|i,j|i.to_r/j}
es más corto en 1 byte.to_f
y división, pero no pensé que dividirRational
conFixnum
. Gracias de nuevo, @ValueInk.Mathematica, 33 bytes
entrada
fuente
Row@@{#/#2,"+"}
mismo queRow[#/#2,"+"]
?Row
era tan conveniente para cosas como esta :)Python 3 , 104 bytes
9 bytes gracias a Felipe Nardi Batista.
Pruébalo en línea!
fuente
+'='+str(sum(c))
a,'=',sum(c)
Perl 6 ,
7773 bytesIntentalo
Intentalo
Expandido:
fuente
Clojure, 71 bytes
¡Yay por fracciones incorporadas!
fuente
Mathematica, 61 bytes
fuente
JavaScript (ES6), 111 bytes
Toma las listas en sintaxis curry
(a)(b)
.fuente
Java, 225 bytes
N
yD
están ambosint[]
contextualizados.Me reutilicé función GCD de Kevin Cruijssen .
¡Véalo y pruébelo en línea!
fuente
Julia v0.4 +,
6653 bytes-13 bytes gracias a Dennis
Pruébalo en línea!
Alternativamente, si las fracciones se pueden mostrar usando en
//
lugar de/
, lo siguiente funciona para 35 bytes :fuente
setlX , 103 bytes
Crea una función llamada
f
donde inserta dos listas.sin golf:
con variables y anotaciones con nombre:
setlX no proporciona una función de comentario, así que solo pretendamos que podemos comentar con
%
fuente
Perl 6,
72 bytes65 bytesLos racionales nativos y automáticos deberían facilitar esto, pero la cadena de caracteres predeterminada sigue siendo decimal, por lo que tenemos que
.nude
( nu merator y de nominator) que mata nuestra puntuación y hace que el 1 sea feo :(Actualización: se eliminaron los corchetes innecesarios, se eliminó más espacio y se utilizó un mapa más inteligente. Guarda los personajes sobre la solución de Brad a costa de no ser un sub lambda.
fuente
05AB1E ,
3534 bytesPruébalo en línea!
fuente
Jalea , 31 bytes
Pruébalo en línea!
fuente
PHP> = 7.1, 190 bytes
Versión en línea
+14 bytes para reemplazo
return$x/$t."/".$y/$t;
conreturn$y/$t>1?$x/$t."/".$y/$t:$x/$t;
salida enn
lugar den/1
fuente
F #,
244241239 bytesPruébalo en línea!
fuente
setlX , 62 bytes
sin golf:
fuente
R, 109 bytes
requiere la
MASS
biblioteca (para sufractions
clase). la funcióng
devuelve la salida requerida como una cadena.Pruébalo en línea! (Enlace R-Fiddle)
fuente
MATL , 32 bytes
Pruébalo en línea!
Explicación
Considerar
[1, 2, 3, 3, 6]
,[2, 9, 3, 2, 4]
como entrada.fuente
TI-BASIC, 100 bytes
Tenga
⁄
en cuenta el al principio, diferente de/
. Esto hace que las fracciones mantengan sus formas. Se hace el trabajo con fracciones negativas.Suspiro . TI-BASIC es horrible con las cuerdas. Si todo lo que tuviéramos que hacer fuera imprimir las fracciones, y luego su suma, el código sería:
TI-BASIC, 12 bytes
¡Eso significa que se gastan 88 bytes de mi código simplemente formateando la respuesta! Hmph .
fuente
C, 171 bytes
Probar en línea
fuente
Axioma, 212 bytes
prueba
fuente
Casio Basic, 161 bytes
Explicación:
A
A
iteracionesB
actúa como un contador para mostrar correctamenteI
El elemento de la Lista 1 y 2 se guarda enC
yD
C
/ variableD
C
/D
+E
enE
=
yE
fuente
Haskell (Lambdabot),
949186 bytesPruébalo en línea!
Gracias @Laikoni por
-8
bytes!Sin golf
fuente
import Data.Ratio
para el%
que no está en Prelude."?"++
con'?':
."/"++d
y"="++
.tail(f>>=t)++'=':(tail.t.sum)f
tail
y=<<
ent
ahorra algo más: Pruébalo en línea!Hojas de cálculo de Google,
8381 bytesGuardado 2 bytes gracias a Taylor Scott
Las hojas agregarán automáticamente 2 paréntesis de cierre al final de la fórmula.
Las dos matrices se ingresan como la totalidad de las columnas
A
yB
. Las filas vacías debajo de las entradas arrojarán errores.fuente
))