def estimacion(numero_agujas, numero_intentos): estimados = [] for _ in range(numero_intentos): estimacion_pi = aventar_agujas(numero_agujas) estimados.append(estimacion_pi) random.ra media_estimado = media(estimados) sigma = desviacion_estandar(estimados) print(f'Est={round(media_estimado,5)}, sigma={round(sigma,5)}, agujas={numero_agujas}')
def estimacion(numero_de_agujas, numero_de_intentos): estimados = [] for _ in range(numero_de_intentos): estimacion_pi = aventar_agujas(numero_de_agujas) estimados.append(estimacion_pi) media_estimados = media(estimados) sigma = desviacion_estandar(estimados) print(f"Est={round(media_estimados,5)}, sigma={round(sigma,5)}, agujas={numero_de_agujas}") return (media_estimados,sigma)
def estimacion(numero_agujas, numero_de_intentos): estimados = [] for _ in range(numero_de_intentos): estimacion_pi = aventar_agujas(numero_agujas) estimados.append(estimacion_pi) media_estimados = media(estimados) sigma = desviacion_estandar(estimados) print(media_estimados, sigma) return (media_estimados, sigma)
def estimacion(numero_de_agujas,numero_intentos): estimados = [] for _ in range(numero_intentos): estimacion_pi = lanzar_agujas(numero_de_agujas) estimados.append(estimacion_pi) media_estimados = media(estimados) sigma = desviacion_estandar(estimados) print(f'Est={round(media_estimados,5)} sigma={round(sigma,5)} Agujas lanzadas = {numero_de_agujas}') return (media,sigma)
def main(cantidad_simulaciones, cantidad_tiros): resultados_simulaciones = [] media_tiros = [] sigmas = [] # distribucion_normal_tiro=[] for _ in range(cantidad_simulaciones): tiros = tiros_dado(cantidad_tiros) resultados_simulaciones.append(tiros) media_tiro = media(tiros) sigma = desviacion_estandar(tiros) media_tiros.append(media_tiro) sigmas.append(sigma) # distribucion_tiros = distribucion_normal(tiros,media_tiro,sigma) # distribucion_normal_tiro.append(distribucion_tiros) counter = dict(collections.Counter(media_tiros)) # print(counter) x = list(counter.keys()) y = list(counter.values()) grafica(x, y, media_tiros) tiros_de_doce = 0 for numero in resultados_simulaciones: if 12 in numero: tiros_de_doce += 1 tiros_de_cinco = 0 for numero in resultados_simulaciones: if 5 in numero: tiros_de_cinco += 1 # print(resultados_simulaciones) probabilidad_del_cinco = tiros_de_cinco / cantidad_tiros probabilidad_del_doce = (tiros_de_doce / cantidad_tiros) print( f'La probabilidad de que aparezca un 5 en {cantidad_tiros} tiros es de {probabilidad_del_cinco}' ) print("___" * 20) print( f'La probabilidad de que aparezca un 12 en {cantidad_tiros} tiros es de {probabilidad_del_doce}' ) print("___" * 20) print( f'Media = {media(media_tiros)} con una desviación estándar de {media(sigmas)}' )
def estimacion( numero_de_agujas, numero_de_intentos): #cuantas veces se van a correr la simulación estimados = [] #variable de todas las estimacion de pi for _ in range(numero_de_intentos): #for loop, que corre # de intentos estimacion_pi = aventar_agujas(numero_de_agujas) estimados.append(estimacion_pi) media_estimados = media(estimados) sigma = desviacion_estandar(estimados) print( f'Est={round(media_estimados, 5)}, sigma={round(sigma, 5)}, agujas={numero_de_agujas}' ) return (media_estimados, sigma) #Regresa una tubla
def estimacion(numero_de_agujas, numero_de_intentos): estimados = [] for _ in range(numero_de_intentos): estimacion_pi = lanzar_agujas(numero_de_agujas) estimados.append(estimacion_pi) # aqui lo que estamos calculando pi muchas veces para poder estimar la media media_estimados = media(estimados) sigma_estimados = desviacion_estandar(estimados) #print(media_estimados, varianza_estimados,sigma_estimados) print( f'Estimacion PI: {round(media_estimados, 5)}, sigma: { round(sigma_estimados, 5)}, agujas: {numero_de_agujas}' ) # en este punto vamos a usar la regla empirica para determinar ue tenemos un 95% por ciento de confianza # ese valor lo encontramos a 1.96 desviaciones estandar return (media_estimados, sigma_estimados)
pivalor, in_circle_x, in_circle_y, out_circle_x, out_circle_y = estimar_pi( puntos) pi_array.append(pivalor) return (pi_array, in_circle_x, in_circle_y, out_circle_x, out_circle_y) deviation = 1 # Valor inicial para poder empezar el ciclo while presicion = 0.1 # Precision en cifras significativas para determinar el # valor estimado de pi (CUIDADO!!!!) iteration = 1 while deviation >= (presicion / 1.96): pi_array, in_circle_x, in_circle_y, out_circle_x, out_circle_y = crear_muestra( tries) deviation = std.desviacion_estandar(pi_array) variance = std.varianza(pi_array) mean = std.media(pi_array) print( f'------------------ Iteracion number: {(iteration)} ------------------' ) print( f'Standard deviation: {round(deviation,5)}, Variance : {round(variance,5)}, pi estimated: {round(mean,5)}' ) print(f'Numero de intentos {tries}, Numero de puntos {puntos}\n\n') #print(f) puntos *= 10 tries *= 10 iteration += 1