In questo codice golf, dovrai determinare la direzione del tiro più corto che colpisce esattamente n cuscini prima di cadere in una tasca.
Il tavolo da biliardo è un tavolo da biliardo a 6 tasche con le seguenti caratteristiche:
- Le dimensioni sono variabili ( a x b )
- Nessun attrito: la palla rotolerà per sempre fino a quando non cade in una tasca
- Le dimensioni delle tasche e delle sfere sono quasi zero. Ciò significa che la palla cadrà nella tasca solo se hanno la stessa posizione.
- La palla viene posizionata nella buca in basso a sinistra all'inizio (ma non cade in essa)
Crea un programma o una funzione completa che prende le dimensioni ( a , b ) della tabella e il numero di cuscini per colpire n come input e restituisce l'angolo in gradi del percorso più breve colpendo esattamente n cuscini prima di cadere in una tasca.
- a > 0
- b > 0
- 0 <= n <10000000
- 0 < alfa <90 (in gradi) precisione: almeno 10 ^ -6
esempi:
con a = 2, b = 1, n = 1 ci sono tre possibili percorsi: (1) (2) (3) nella figura seguente. il numero (1) è il più corto, quindi l'uscita deve essere atan (2) = 63.43494882292201 gradi
La soluzione per a = 2, b = 1, n = 4 è atan (4/3) = 53.13010235415598 gradi
campioni di prova:
a = 2, b = 1, n = 1, -> alpha = 63.43494882292201
a = 2, b = 1, n = 2, -> alpha = 71.56505117707799
a = 2, b = 1, n = 3, -> alpha = 75.96375653207353
a = 2, b = 1, n = 4, -> alpha = 53.13010235415598
a = 2, b = 1, n = 5, -> alpha = 59.03624346792648
a = 2, b = 1, n = 6, -> alpha = 81.86989764584403
a = 4.76, b = 3.64, n = 27, -> alpha = 48.503531644784466
a = 2, b = 1, n = 6, -> alpha = 81.86989764584403
a = 8, b = 3, n = 33, -> alpha = 73.24425107080101
a = 43, b = 21, n = 10005, -> alpha = 63.97789961246943
Questo è il golf code / biliardo: vince il codice più corto!
n
cuscini, o almeno in
cuscini?