Regionen regulärer Polygone

10

Wie viele Regionen bilden die Diagonalen bei einem regulären N-Gon mit allen gezeichneten Diagonalen?

Zum Beispiel hat ein reguläres Dreieck genau 1, ein Quadrat genau 4, ein Fünfeck genau 11 und ein Sechseck 24.

  • Die Bewertung ist umgekehrt proportional zur Anzahl der Bytes in Lösung
  • Aufgrund der Laufzeit können kleine Fudge-Faktoren zu den Scores hinzugefügt werden
  • Der das Polygon umgebende Bereich zählt nicht
Wug
quelle
1
Also ... schreibe ein Programm, das dies
Mob

Antworten:

11

Mathematica 118

Obwohl es genau definierte Routinen zum Berechnen der Anzahl von Regionen in einem regulären n-Gon mit allen gezeichneten Diagonalen gibt , sind sie ziemlich umständlich. Ich dachte, es könnte Spaß machen, einen Bildverarbeitungsansatz zu wählen : Wenn wir das n-Gon mit seinen Diagonalen zeichnen, wäre es möglich, die Bereiche aus dem gezeichneten Bild zu zählen (genauer gesagt aus der gerasterten und binärisierten Darstellung des Bildes als eine Anordnung)?

Im Folgenden wird ein tatsächliches Bild eines Polygons erstellt und verarbeitet und die Anzahl der Bereiche aus dem gerasterten Bild bestimmt.

Table[MorphologicalEulerNumber@Binarize@Rasterize@CompleteGraph[k, ImageSize->1200,EdgeStyle->Thickness[Large]],{k,3,14}]

{1, 3, 11, 24, 50, 80, 154, 220, 375, 444, 781, 952}

Dies kann als Ingenieurlösung bezeichnet werden. Es erledigt die Arbeit, aber nur unter bestimmten Bedingungen. (Und es ist langsam: Die Ausführung des obigen Codes dauerte 4,24 s.) Die obige Routine funktioniert korrekt bis einschließlich eines 14-vollständigen Diagramms (siehe unten). Ich fand das überraschend, da einige von 952 Regionen sehr schwer zu sehen sind, selbst wenn das Bild mit 1200 x 1200 Pixel angezeigt wird.

Das Bild unten ist das Bild, bevor es gerastert und binärisiert wird.

14-vollständige Grafik

DavidC
quelle
3

Excel, 341 Bytes

Implementiert die Formel, die auf dem Woflram Mathworld-Link im Kommentar von @ mob angegeben ist.

=A1*(A1^3-6*A1^2+23*A1-42)/24+1+(MOD(A1,2)=0)*(A1*(42*A1-5*A1^2-40)/48-1)-(MOD(A1,4)=0)*3*A1/4+(MOD(A1,6)=0)*A1*(310-53*A1)/12+(MOD(A1,12)=0)*49/2*A1+(MOD(A1,18)=0)*32*A1+(MOD(A1,24)=0)*19*A1-(MOD(A1,30)=0)*36*A1-(MOD(A1,42)=0)*50*A1-(MOD(A1,60)=0)*190*A1-(MOD(A1,84)=0)*78*A1-(MOD(A1,90)=0)*48*A1-(MOD(A1,120)=0)*78*A1-(MOD(A1,210)=0)*48*A1

Aus Gründen der Klarheit ungolfed:

=A1*(A1^3-6*A1^2+23*A1-42)/24+1
+(MOD(A1,2)=0)  *(A1*(42*A1-5*A1^2-40)/48-1)
-(MOD(A1,4)=0)  *3*A1/4
+(MOD(A1,6)=0)  *A1*(310-53*A1)/12
+(MOD(A1,12)=0) *49/2*A1
+(MOD(A1,18)=0) *32*A1
+(MOD(A1,24)=0) *19*A1
-(MOD(A1,30)=0) *36*A1
-(MOD(A1,42)=0) *50*A1
-(MOD(A1,60)=0) *190*A1
-(MOD(A1,84)=0) *78*A1
-(MOD(A1,90)=0) *48*A1
-(MOD(A1,120)=0)*78*A1
-(MOD(A1,210)=0)*48*A1 
Wernisch
quelle