Ich komme aus diesem Sandkastenpfosten
Dies ist inspiriert von einem Mathe-Test für Achtklässler
Intro
Wir haben einen Würfel mit folgenden Ecken
A(0, 0, 0)
B(1, 0, 0)
C(1, 1, 0)
D(0, 1, 0)
E(0, 0, 1)
F(1, 0, 1)
G(1, 1, 1)
H(0, 1, 1)
Dieser Würfel hat eindeutig 8 Ecken, 12 Kanten und 6 Flächen. Wenn wir nun die Ecke G so abschneiden, dass unsere Schnittebene genau durch die Mitte jeder benachbarten ursprünglichen Kante verläuft, fügen wir 2 neue Ecken, 3 neue Kanten und eine neue Fläche hinzu. Bitte genießen Sie dieses handgezeichnete Kunstwerk zur besseren Verdeutlichung
Eingang
Berechnen Sie anhand einer Liste von Ecken (in diesem Beispiel mit AH gekennzeichnet), die abgeschnitten werden, die neue Anzahl von Ecken, Kanten und Flächen.
Sie nehmen die Eingabe in einer beliebigen Form vor, solange sie auf dieselben Ecken reagiert (z. B. können Sie anstelle von AH 1-8 oder 0-7 verwenden, Sie können davon ausgehen, dass es sich um eine Liste handelt, csv, was auch immer).
Sie können davon ausgehen, dass die Liste eindeutig ist (jede Ecke wird höchstens einmal angezeigt), sie kann jedoch leer sein. Die Liste enthält niemals nicht vorhandene Ecken.
Ausgabe
Geben Sie drei Zahlen aus, die der Anzahl der Ecken, Kanten und Flächen entsprechen. Die Ausgabe als Liste ist ausdrücklich zulässig. Nachgestellte Leerzeichen sind zulässig
Beispiele
{} -> 8, 12, 6 (empty list)
{A} -> 10, 15, 7
{A,C} -> 12, 18, 8
{A,C,F} -> 14, 21, 9
{A,B,C} -> 12, 19, 9
{A,B,C,D} -> 12, 20, 10
Schließlich ist dies Codegolf, also gewinnt die kürzeste Antwort in Bytes. Bitte unterlassen Sie Standardlücken.
Antworten:
Gelee , 23 Bytes
Eine monadische Verbindung. Eingabe ist eine Liste von Ecken des Würfels als kartesische Koordinaten (Würfel ausgerichtet mit dem Koordinatensystem). Die Ausgabe ist eine Liste von ganzen Zahlen
[faces, corners, edges]
.Probieren Sie es online aus!
Wie?
Wenn die Ecken so "geordnet" werden müssen, wie sie in der Frage stehen, funktioniert dies mit Ganzzahlen 0-7 als AH für 25 Bytes:
3R×L+“©®€‘ɓŒc^/€ḟ2<5S;`Żạ
(Reduziert die Verwendung von XOR, filtert zwei heraus und zählt dann die weniger als fünf).quelle
Holzkohle ,
4845 BytesProbieren Sie es online aus! Der Link führt zur ausführlichen Version des Codes. Verwendet Ziffern
0-7
, um die BuchstabenABDCEFHG
im Diagramm darzustellen. Ausgaben in der Reihenfolge Flächen, Ecken, Kanten. Erläuterung:Nehmen Sie den ASCII-Code jedes Zeichens und konvertieren Sie ihn in Basis 2.
Nehmen Sie das kartesische Produkt aus der Liste der Basis-2-Zahlen mit.
XOR die Paare von Basis 2 Zahlen zusammen und summiere die Anzahl von 1 Bits. Zählen Sie, wie viele Paare eine Summe von 1 haben, und teilen Sie diese durch 2. Dies gibt die Anzahl der übereinstimmenden Ecken an.
Berechnen und drucken Sie die Anzahl der Flächen, Ecken und Kanten.
quelle
JavaScript (Node.js) , 84 Byte
Probieren Sie es online aus!
quelle
Perl 6 ,
5958 BytesProbieren Sie es online aus!
Verwendet die Zahlen
0
,7
um die Ecken darzustellen. Ich hätte sie wahrscheinlich in die gleiche Reihenfolge wie in der Frage bringen sollen ... oops? Gibt eine Liste in der Reihenfolge ausfaces, corners, edges
.quelle