Ver Mensaje Individual
  #85 (permalink)  
Antiguo 31/12/2013, 13:07
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años, 7 meses
Puntos: 320
Respuesta: Propuesta para desafíos javascript 2014

Otra forma mucho mas rapida (aunque no hay forma directa de aproximar a n decimales) es mediante funciones trigonometricas.
La formula seria: n * seno (180º / n) < PI < n * tangente (180º / n)

Para n = 3 => 2.598 < PI < 5.196
Para n = 4 => 2.828 < PI < 4
Para n = 5 => 2.938 < PI < 3.632
Para n = 6 => 3 < PI < 3.464
Para n = 10 => 3.09 < PI < 3.249
Para n = 20 => 3.128 < PI < 3.167
Para n = 60 => 3.14 < PI < 3.144
Para n = 90 => 3.14 < PI < 3.142
Para n = 360 => 3.1415 < PI < 3.1416
Para n = 720 => 3.14158 < PI < 3.14161
Para n = 1800 => 3.141591 < PI < 3.141958
Para n = 3600 => 3.1415922 < PI < 3.1415934
Para n = 9000 => 3.14159259 < PI < 3.141592781
Para n = 18000 => 3.141592638 < PI < 3.141592685
y para n = 72000=> 3.141592653 < PI < 3.141592656

el costo del calculo es fijo y la precicion depede de n.

no escribi el fiddle ya es que es solo un calculo matematico simple.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios