Dada una lista de yardas de hoyo, tamaños verdes, un ángulo de corte y una distancia máxima, calcule una puntuación de golf .
Supuestos
- La tierra es plana
- Todos los greens son circulares.
- El ángulo de corte estará entre -45 y 45 grados y se dará en grados
- Todas las distancias en la misma métrica (yardas o metros, no importa)
- Sin límites, obstrucciones o doglegs.
- La puntuación máxima en cualquier hoyo es 8
- Todos los disparos recorren la menor distancia máxima o la distancia al hoyo, en una dirección definida por el ángulo del hoyo más el ángulo de corte.
- La distancia se mide como la línea recta o la distancia euclidiana entre el punto inicial y el punto final.
- La distancia máxima y el ángulo de corte son los mismos para todos los disparos en todos los agujeros
- El golfista siempre dos putts una vez en el green (o exactamente en el borde del green).
Ejemplo
Miremos al pirata informático del caso de prueba # 5 a continuación para el hoyo # 2. El hacker puede golpear la pelota 320 yardas, pero siempre corta 30 grados. Si suponemos sin pérdida de generalidad que el tee box está en {0,0} y el green está en {497,0}, entonces golpeará los tiros a los siguientes puntos, llegando al green con el 7 ° tiro:
{{0.,0.},{277.128,-160.},{547.543,-131.372},{569.457,7.67088},{502.872,37.2564},{479.159,7.92741},{490.646,-7.85868},{500.078,-4.22987}}
En este punto, su puntaje sería 9 debido a los dos putts requeridos, por lo que el puntaje final para él se limita a 8, según los supuestos.
Casos de prueba
Todos los casos de prueba tienen campos estándar de 18 hoyos.
Case#1
{MaxDistance->280,SliceAngle->10,HoleDistances->{181,368,161,416,158,526,377,427,509,148,405,443,510,494,396,388,483,172},GreenDiameters->{26,18,17,23,27,23,21,23,25,21,19,24,21,23,25,24,22,22}}
Scores:
{4,5,4,5,4,5,5,5,5,4,5,5,5,5,5,5,5,4}
Output: 85
Case#2 (same course as Test Case #1, shorter more accurate golfer)
{MaxDistance->180,SliceAngle->5,HoleDistances->{181,368,161,416,158,526,377,427,509,148,405,443,510,494,396,388,483,172},GreenDiameters->{26,18,17,23,27,23,21,23,25,21,19,24,21,23,25,24,22,22}}
Scores:
{4,5,4,5,4,6,5,5,6,4,5,5,6,6,5,5,5,4}
Output: 89
Case#3 (Same golfer as test case #1, shorter course)
{MaxDistance->280,SliceAngle->10,HoleDistances->{147,497,110,528,409,118,196,154,134,514,374,491,131,138,523,478,481,494},GreenDiameters->{32,16,36,25,32,20,30,30,33,29,25,26,26,25,33,28,21,28}}
Scores:
{4,5,4,5,5,4,4,4,4,5,5,5,4,4,5,5,5,5}
Output: 82
Case#4 (Same course as test case #3)
{MaxDistance->180,SliceAngle->5,HoleDistances->{147,497,110,528,409,118,196,154,134,514,374,491,131,138,523,478,481,494},GreenDiameters->{32,16,36,25,32,20,30,30,33,29,25,26,26,25,33,28,21,28}}
Scores:
{3,6,3,6,5,4,4,3,3,5,5,5,3,3,5,5,6,5}
Output: 79
Case#5 (Hacker)
{MaxDistance->320,SliceAngle->30,HoleDistances->{147,497,110,528,409,118,196,154,134,514,374,491,131,138,523,478,481,494},GreenDiameters->{32,16,36,25,32,20,30,30,33,29,25,26,26,25,33,28,21,28}}
Scores:
{6,8,5,8,7,6,6,6,6,8,8,8,6,6,8,8,8,8}
Output: 126
Reglas
- Se puede usar cualquier formato para la entrada. La salida es simplemente el número de trazos simulados, por lo que debe ser un número entero.
- Este es el código de golf, por lo que gana la respuesta más corta en bytes. Se aplican lagunas estándar.
MaxDistance
del hoyo?
GreenDiameter/2
, en cuyo caso sí, ya que el puntaje está limitado a 8 y siempre hay 2 putts.