Schreiben Sie ein Programm oder eine Funktion, die zwei nicht leere Listen mit der gleichen Länge wie die Eingabe verwendet und Folgendes ausführt:
- Verwendet Elemente der ersten Liste, um Zähler zu erhalten.
- Verwendet Elemente der zweiten Liste, um Nenner zu erhalten.
- Nach der Vereinfachung werden die resultierenden Brüche
(2/4=>1/2)
durch "+" getrennt angezeigt. - zeigt "=" und das Ergebnis der Addition nach dem letzten Bruch an.
Beispiel:
Eingang
[1, 2, 3, 3, 6]
[2, 9, 3, 2, 4]
Ausgabe
1/2+2/9+1+3/2+3/2=85/18
Über Regeln
- Elemente von Listen werden positive ganze Zahlen sein,
- Elemente können durch Leerzeichen getrennt werden, zB:
1/2 + 2/9 + 1 + 3/2 + 3/2 = 85/18
ist ok, - nachgestellte Zeilenumbrüche sind erlaubt,
- Listen können als oben in anderen Formaten aufgenommen werden, zB .:
(1 2 3 3 6)
oder{1;2;3;3;6}
usw. 1
kann ausgedrückt werden als1/1
,- Anstatt zu drucken, können Sie die entsprechende Zeichenfolge zurückgeben.
- Sie müssen nicht mit falschen Eingaben umgehen,
- kürzester Code gewinnt .
[1, 2] [2, 9] [3, 3] ...
stattdessen Brüche als bekommen ?Antworten:
M ,
1211 BytesDies ist eine dyadische Verbindung. Aufgrund eines Fehlers funktioniert es nicht als vollständiges Programm.
F
wird auch wegen eines Fehlers benötigt.Probieren Sie es online!
Wie es funktioniert
quelle
Ruby 2.4,
5453 ZeichenDank an:
Rational
Initialisierung (-1 Zeichen)Ruby,
585756 ZeichenProbelauf:
Probieren Sie es online!
quelle
a=n.zip(d).map{|f|(f*?/).to_r};a*?++"=#{a.sum}"
In Ruby 2.4 sparen Sie 3 Bytes.sum
haha testen kann . Außerdem habe ich mich gerade daran erinnert, dass.map{|i,j|i.to_r/j}
es um 1 Byte kürzer ist.to_f
und Teilung, aber dachte nicht daran,Rational
mit zu teilenFixnum
. Nochmals vielen Dank, @ValueInk.Mathematica, 33 Bytes
Eingang
quelle
Row@@{#/#2,"+"}
dasselbe wieRow[#/#2,"+"]
?Row
dass das für solche Dinge so praktisch ist :)Python 3 , 104 Bytes
9 Bytes dank Felipe Nardi Batista.
Probieren Sie es online!
quelle
+'='+str(sum(c))
zu,'=',sum(c)
Perl 6 ,
77,73 BytesVersuch es
Versuch es
Erweitert:
quelle
Clojure, 71 Bytes
Ja für eingebaute Brüche!
quelle
Mathematica, 61 Bytes
quelle
JavaScript (ES6), 111 Byte
Übernimmt die Listen in Curry-Syntax
(a)(b)
.quelle
Java, 225 Bytes
N
undD
sind beideint[]
kontextualisiert.Ich habe die GCD-Funktion von Kevin Cruijssen wieder verwendet .
Sieh es dir an und teste es online!
quelle
Julia v0.4 +,
6653 Bytes-13 Bytes dank Dennis
Probieren Sie es online!
Alternativ funktioniert Folgendes für 35 Bytes , wenn Brüche mit
//
anstatt angezeigt werden können :/
quelle
setlX , 103 bytes
Erstellt eine Funktion mit dem Namen,
f
in der Sie zwei Listen einfügen.ungolfed:
mit benannten Variablen und Annotationen:
setlX bietet keine Kommentarfunktion, also tun wir einfach so, als könnten wir mit Kommentaren arbeiten
%
quelle
Perl 6,
72 Bytes65 BytesNative und automatische Rationals sollten dies einfach machen, aber die Standardstringifizierung ist immer noch dezimal, also müssen wir
.nude
( nu merator und de nominator), was unsere Punktzahl tötet und die 1 hässlich macht :(Update: Entfernte nicht benötigte Klammern, töte mehr Platz und verwende eine intelligentere Karte. Spart Charaktere über Brads Lösung, ohne ein Lambda-Sub zu sein.
quelle
05AB1E ,
3534 BytesProbieren Sie es online!
quelle
Gelee , 31 Bytes
Probieren Sie es online!
quelle
PHP> = 7.1, 190 Bytes
Online Version
+14 Bytes zum Ersetzen
return$x/$t."/".$y/$t;
durchreturn$y/$t>1?$x/$t."/".$y/$t:$x/$t;
to outputn
stattn/1
quelle
F #,
244241239 BytesProbieren Sie es online!
quelle
setlX , 62 bytes
ungolfed:
quelle
R 109 Bytes
benötigt die
MASS
Bibliothek (für ihrefractions
Klasse). Die Funktiong
gibt die erforderliche Ausgabe als Zeichenfolge zurück.Probieren Sie es online! (R-Geige Link)
quelle
MATL , 32 Bytes
Probieren Sie es online!
Erläuterung
Betrachten wir
[1, 2, 3, 3, 6]
,[2, 9, 3, 2, 4]
als Eingabe.quelle
TI-BASIC, 100 Bytes
Beachten Sie die
⁄
am Anfang, anders als/
. Dadurch behalten die Fraktionen ihre Form. Es funktioniert mit negativen Brüchen.Seufz . TI-BASIC ist schrecklich mit Streichern. Wenn wir nur die Brüche und dann ihre Summe drucken müssten, wäre der Code:
TI-BASIC, 12 Bytes
Das bedeutet, dass 88 Bytes meines Codes nur für das Formatieren der Antwort ausgegeben werden! Hmph .
quelle
C 171 Bytes
Versuchen Sie es online
quelle
Axiom 212 Bytes
Prüfung
quelle
Casio Basic, 161 Bytes
Erläuterung:
A
A
IterationenB
Dient als Zähler für die korrekte AnzeigeI
'th Punkt der Liste 1 und 2 gespeichert inC
undD
C
/ VariableD
C
/D
+E
inE
=
undE
quelle
Haskell (Lambdabot),
949186 BytesProbieren Sie es online!
Danke @Laikoni für
-8
Bytes!Ungolfed
quelle
import Data.Ratio
für%
die nicht in Prelude."?"++
mit'?':
."/"++d
und"="++
.tail(f>>=t)++'=':(tail.t.sum)f
tail
und=<<
int
spart einige mehr: Versuchen Sie es online!Google Sheets,
8381 Bytes2 Bytes gespart dank Taylor Scott
Sheets fügt am Ende der Formel automatisch 2 schließende Klammern hinzu.
Die beiden Arrays werden als Gesamtheit der Spalten
A
und eingegebenB
. Leere Zeilen unter den Eingaben führen zu Fehlern.quelle
))