Die Schwierigkeit, Pizza mit Freunden zu teilen, besteht darin, dass es schwierig ist, sicherzustellen, dass jeder die gleiche Menge Peperoni auf seinem Stück bekommt. Ihre Aufgabe ist es also, zu entscheiden, wie Sie eine Pizza fair in Scheiben schneiden, damit alle glücklich sind.
Richtungen
Schreiben Sie ein Programm, das anhand einer Liste der Positionen von Pepperonis auf einer runden Pizza und der Anzahl der zu schneidenden Scheiben eine Liste der Winkel ausgibt, unter denen die Pizza geschnitten werden sollte, sodass auf jeder Scheibe die gleiche Menge von Pepperonis liegt es.
- Die Pizza hat nur einen Belag: Peperoni.
- Ihre Freunde kümmern sich nicht um die Größe ihrer Scheibe, nur dass sie nicht um irgendwelche Peperoni betrogen werden.
- Die Pizza ist ein auf den Ursprung zentrierter Kreis
(0, 0)mit einem Radius von1. - Die Pepperonis sind Kreise, die dort zentriert sind, wo die Eingabe angibt, dass sie zentriert sind und einen Radius von haben
0.1 - Nehmen Sie die Eingabe als Ganzzahl , die die Anzahl der zu erstellenden Schnitte und eine Liste der geordneten Paare darstellt , die die Positionen der Pepperonis auf einem kartesischen Koordinatensystem darstellen. (In jedem vernünftigen Format)
- Die Ausgabe sollte eine Liste von Winkeln im Bogenmaß sein , die die Positionen der "Schnitte" zur Pizza (im Bereich
0 <= a < 2pi) darstellen. (In jedem vernünftigen Format) (Präzision sollte mindestens sein+/- 1e-5.) - Sie können teilweise Stücke einer Peperoni auf einer Scheibe haben (z. B. wenn eine Pizza eine Peperoni hat und diese von 10 Personen geteilt werden muss, schneiden Sie die Pizza zehnmal durch, wobei alle Schnitte durch die Peperoni schneiden. Aber stellen Sie sicher, dass sie fair sind !)
- Eine geschnittene Dose kann (muss) mehrere Pepperonis in Scheiben schneiden.
- Pepperonis kann sich überlappen.
Beispiele
Eingang:
8 people, pepperonis: (0.4, 0.2), (-0.3, 0.1), (-0.022, -0.5), (0.3, -0.32)
Mögliche gültige Ausgabe:
slices at:
0, 0.46365, 0.68916, 2.81984, 3.14159, 4.66842, 4.86957, 5.46554
Hier ist eine Visualisierung dieses Beispiels (jeder bekommt eine halbe Peperoni):

Mehr Beispiele:
Input: 9 people, 1 pepperoni at: (0.03, 0.01)
Output: 0, 0.4065, 0.8222, 1.29988, 1.94749, 3.03869, 4.42503, 5.28428, 5.83985

Input: 5, (0.4, 0.3), (0.45, 0.43), (-0.5, -0.04)
Output: 0, 0.64751, 0.73928, 0.84206, 3.18997

Wertung
Das ist Code-Golf , also gewinnt die geringste Anzahl von Bytes.