Pizzaları arkadaşlarınızla paylaşmanın zorluğu, herkesin diliminde aynı miktarda pepperoni aldığından emin olmanın zor olmasıdır. Yani, göreviniz herkesin mutlu olması için bir pizzayı nasıl dilimleyeceğinize karar vermektir.
Talimatlar
Dairesel bir pizza üzerindeki pepperonis pozisyonlarının bir listesi ve yapılacak dilim sayısı göz önüne alındığında, her dilimin aynı miktarda biberli olması için pizzanın kesilmesi gereken açıların bir listesini veren bir program yazın. o.
- Pizza sadece bir tepesi vardır: biberli.
- Arkadaşlarınız dilimlerinin boyutlarını umursamıyorlar, sadece herhangi bir biberli aldatmasınlar.
- Pizza, menşe merkezli
(0, 0)ve yarıçaplı1bir dairedir . - Pepperonlar, girdinin ortalandığını ve yarıçapı olduğunu söylediği her yerde ortalanmış dairelerdir
0.1 - Girdiyi yapılacak dilim sayısını temsil eden bir tamsayı ve pepperonisin kartezyen koordinat sistemindeki konumlarını temsil eden sıralı çiftlerin bir listesini alın . (Makul bir biçimde)
- Çıktı , pizzanın ( aralıktaki ) "kesiklerinin" konumlarını temsil eden radyan cinsinden verilen açıların bir listesi olmalıdır . (Makul bir biçimde) (Hassasiyet en azından olmalıdır .)
0 <= a < 2pi+/- 1e-5 - Bir dilimde kısmi bir biberli parçaya sahip olabilirsiniz (örn. Bir pizzanın üzerinde bir biberli varsa ve 10 kişi tarafından paylaşılması gerekiyorsa, pizzayı on kez kesin, tüm kesikler biberli dilimlemeyi kesin. !)
- Bir kesik çoklu pepperonlardan dilimlenebilir (gerekebilir).
- Pepperonis üst üste gelebilir.
Örnekler
Giriş:
8 people, pepperonis: (0.4, 0.2), (-0.3, 0.1), (-0.022, -0.5), (0.3, -0.32)
Olası geçerli çıktı:
slices at:
0, 0.46365, 0.68916, 2.81984, 3.14159, 4.66842, 4.86957, 5.46554
İşte bu örneğin bir görselleştirmesi (herkes yarım biberli alır):

Daha fazla örnek:
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

puanlama
Bu kod golf , bu yüzden en az bayt sayısı kazanır.