La difficoltà nel condividere la pizza con gli amici è che è difficile assicurarsi che tutti ricevano la stessa quantità di peperoni sulla loro fetta. Quindi, il tuo compito è decidere come tagliare una pizza in modo equo in modo che tutti siano felici.
Indicazioni
Scrivi un programma che, dato un elenco delle posizioni dei peperoni su una pizza circolare e il numero di fette da fare, produce un elenco degli angoli in cui la pizza dovrebbe essere tagliata in modo che ogni fetta abbia la stessa quantità di peperoni su esso.
- La pizza ha un solo condimento: peperoni.
- Ai tuoi amici non importa delle dimensioni della loro fetta, solo che non sono imbrogliati da nessun peperone.
- La pizza è un cerchio centrato sull'origine
(0, 0)e con un raggio di1. - I peperoni sono cerchi che sono centrati ovunque l'input dica che sono centrati e hanno un raggio di
0.1 - Prendi l'input come un numero intero che rappresenta il numero di sezioni da creare e un elenco di coppie ordinate che rappresentano le posizioni dei peperoni su un sistema di coordinate cartesiane. (In qualsiasi formato ragionevole)
- L'output dovrebbe essere un elenco di angoli forniti in radianti che rappresentano le posizioni dei "tagli" rispetto alla pizza ( nell'intervallo
0 <= a < 2pi). (In qualsiasi formato ragionevole) (La precisione dovrebbe essere almeno+/- 1e-5.) - Puoi avere una porzione parziale di peperoni su una fetta (ad es. Se una pizza ha un peperone e deve essere condivisa da 10 persone, taglia la pizza dieci volte, taglia tutti i peperoni. Ma assicurati che sia giusto !)
- Un taglio può (potrebbe essere necessario) tagliare più peperoni.
- I peperoni possono sovrapporsi.
Esempi
Ingresso:
8 people, pepperonis: (0.4, 0.2), (-0.3, 0.1), (-0.022, -0.5), (0.3, -0.32)
Possibile output valido:
slices at:
0, 0.46365, 0.68916, 2.81984, 3.14159, 4.66842, 4.86957, 5.46554
Ecco una visualizzazione di questo esempio (ognuno ottiene mezzo peperone):

Altri esempi:
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

punteggio
Questo è code-golf , quindi vince il numero minimo di byte.