Betrachten Sie das gleichseitige Standarddreieck mit Knoten, die mit Schwerpunktkoordinaten beschriftet sind :

Wir können dieses Dreieck mit 3 Knoten in ein Dreieck mit 6 Knoten umwandeln, indem wir eine neue Linie mit 3 Knoten hinzufügen (eine mehr als auf einer Seite des ursprünglichen Dreiecks mit 3 Knoten vorhanden war), interne Kanten entfernen (aber keine internen Knoten) und normalisiere die Koordinaten:
Wiederholen Sie den Vorgang, um von einem 6-Knoten-Dreieck zu einem 10-Knoten-Dreieck zu wechseln, fügen Sie eine Linie aus 4 Eckpunkten hinzu (wieder eine mehr, als auf einer Seite des ursprünglichen 6-Knoten-Dreiecks vorhanden war), und entfernen Sie alle internen Kanten (jedoch keine internen Knoten) ) und normalisiere die Koordinaten:
Dieser Vorgang kann auf unbestimmte Zeit wiederholt werden. Das Ziel dieser Abfrage ist eine Ganzzahl, Ndie angibt , wie oft dieser Prozess ausgeführt wurde. Geben Sie alle Knoten für das zugehörige Dreieck in baryzentrischen Koordinaten aus.
Eingang
Ihr Programm / Ihre Funktion sollte als Eingabe eine einzelne nicht negative Ganzzahl verwenden, Ndie angibt , wie oft dieser Prozess angewendet wurde. Beachten Sie, dass Sie für N=0das ursprüngliche Dreieck 3 Knoten ausgeben sollten.
Der Eingang kann von einer beliebigen Quelle stammen (Funktionsparameter, Stdio usw.).
Ausgabe
Ihr Programm / Ihre Funktion sollte alle Knoten in normalisierten Schwerpunktkoordinaten ausgeben. Die Reihenfolge der Knoten spielt keine Rolle. Eine Zahl kann als Bruchzahl (keine Bruchkürzung erforderlich) oder als Gleitkommazahl angegeben werden. Sie können auch "skalierte" Vektoren ausgeben, um einen Knoten anzugeben. Beispielsweise sind alle 3 der folgenden Ausgaben gleichwertig und zulässig:
0.5,0.5,0
1/2,2/4,0
[1,1,0]/2
Wenn Sie eine Gleitkommaausgabe verwenden, sollte Ihre Ausgabe auf 1% genau sein. Die Ausgabe kann auf eine beliebige Senke erfolgen (stdio, Rückgabewert, Rückgabeparameter usw.). Beachten Sie, dass Sie alle 3 Zahlen pro Knoten ausgeben sollten, obwohl die Schwerpunktkoordinaten eindeutig durch nur 2 Zahlen pro Knoten bestimmt werden.
Beispiele
Beispielfälle sind wie folgt formatiert:
N
x0,y0,z0
x1,y1,z1
x2,y2,z2
...
Dabei ist die erste Zeile die Eingabe N, und alle folgenden Zeilen bilden einen Knoten x,y,z, der genau einmal in der Ausgabe enthalten sein soll. Alle Zahlen sind als ungefähre Gleitkommazahlen angegeben.
0
1,0,0
0,1,0
0,0,1
1
1,0,0
0,1,0
0,0,1
0.5,0,0.5
0.5,0.5,0
0,0.5,0.5
2
1,0,0
0,1,0
0,0,1
0.667,0,0.333
0.667,0.333,0
0.333,0,0.667
0.333,0.333,0.333
0.333,0.667,0
0,0.333,0.667
0,0.667,0.333
3
1,0,0
0.75,0,0.25
0.75,0.25,0
0.5,0,0.5
0.5,0.25,0.25
0.5,0.5,0
0.25,0,0.75
0.25,0.25,0.5
0.25,0.5,0.25
0.25,0.75,0
0,0,1
0,0.25,0.75
0,0.5,0.5
0,0.75,0.25
0,1,0
Wertung
Das ist Code Golf; kürzester Code in Bytes gewinnt. Es gelten Standardlücken. Sie können beliebige integrierte Funktionen verwenden.


[1,2,3]/6?