def main(): print('{:_^78}'.format(" DISTRIBUCIÓN NORMAL ")) num_marcas = (int(input("Cantidad de marcas:"))) calcular_marcas(num_marcas, marcas) calcular_fx(marcas, fx) calcular_Fx(fx, Fx) imprimir(marcas, fx, Fx) dias = (int(input("Cantidad de días a simular:"))) semilla = (int(input("Valor de la semilla:"))) metodo_mixto(dias, semilla, 11, 13, 64, aleatorios) print("\nVALORES ALEATORIOS", aleatorios) chicuadrado.test_chi(aleatorios) # generar_random(semilla,dias, aleatorios) # metodo_mult(cant_dias, valor_semilla, 11, 64, aleatorios) # metodo_mixto(cant_dias, valor_semilla, 11, 13, 64, aleatorios) buscar_intervalo(semilla, dias, marcas, Fx) print('{:_^78}'.format("")) print("CANTIDAD DE DÍAS", dias, "\n" "VALORES DIARIOS ", periodo) x = np.linspace(-4, 4, 50) graficar_normal(x, lw=2)
def main(): print('{:_^78}'.format(" DISTRIBUCIÓN DE POISSON ")) n = (int(input("Cantidad de variables aleatorias deseadas:"))) mu = (float(input("Valor de mu:"))) var_al(n, mu) calcular_fx(X, fx, mu) calcular_Fx(fx, Fx) imprimir(X, fx, Fx) dias = (int(input("Cantidad de días a simular:"))) semilla = (int(input("Valor de la semilla:"))) metodo_mixto(dias, semilla, 11, 13, 64, aleatorios) print("VALORES ALEATORIOS:", aleatorios) chicuadrado.test_chi(aleatorios) buscar_intervalo(semilla, dias, X, Fx) print('{:_^78}'.format(""), "\n") print("CANTIDAD DE DÍAS EVALUADOS:", dias, "\n" "VALORES DIARIOS OBTENIDOS: ", periodo) graficar_poi(50, mu)
def main(): print('{:_^78}'.format(" DISTRIBUCIÓN EXPONENCIAL ")) n = (int(input("Cantidad de eventos a evaluar:"))) a = (float(input("Amplitud del intervalo:"))) ini = (float(input("Valor inicial:"))) var_al(ini, n, a) calcular_fx(X, fx) calcular_Fx(fx, Fx) imprimir(X, fx, Fx) dias = (int(input("Cantidad de días a simular:"))) semilla = (int(input("Valor de la semilla:"))) metodo_mixto(dias, semilla, 11, 13, 1024, aleatorios) print("\nVALORES ALEATORIOS:", aleatorios) chicuadrado.test_chi(aleatorios) buscar_intervalo(semilla, dias, X, Fx) print('{:_^78}'.format(""), "\n") print("CANTIDAD DE DÍAS EVALUADOS:", dias, "\n" "VALORES DIARIOS OBTENIDOS: ", periodo) x = np.linspace(0, 10, 50) graficar_exp(x, lw=2)
(iteraciones sin encontrar repetición) de mod/4. """ res = [] for i in range(n): x1 = (a * x + c) % mod x2 = x1 / (mod-1) # para que el valor esté entre 0 y 1 # print (i+1, x2) x = x1 #v_res.append(x2) v_res.append(round(x2, 4)) #print(v_res) def ingresar(): n = int(input("Cantidad de números deseados:")) x = int(input("Valor de la semilla: ")) a = int(input("Valor del multiplicador: ")) c = int(input("Valor de la constante aditiva: ")) m = int(input("Valor del modulo: ")) metodo_mixto(n, x, a, c, m, res) if __name__ == "__main__": # solo se ejecuta cuando no es llamado via 'import' ingresar() print("Valores Aleatorios:", res) chicuadrado.test_chi(res)
def inicio(p_dias): corridas = 1 for i in range(0, sim): v_total_per.append(0) v_total_vtas.append(0) v_mayorVenta.append(0) v_menorVenta.append(0) v_total_prov_a.append(0) v_total_prov_b.append(0) calcular_demoraFx(demoraPx_prov_a, demoraFx_prov_a) calcular_demoraFx(demoraPx_prov_b, demoraFx_prov_b) print('\nPROVEEDOR A') imprimir_demora(demora_prov_a, demoraPx_prov_a, demoraFx_prov_a) print('PROVEEDOR B') imprimir_demora(demora_prov_b, demoraPx_prov_b, demoraFx_prov_b) while corridas <= sim: print('{: ^34}'.format("")) cprint("ITERACIÓN NÚMERO:", 'blue', attrs=['bold', 'underline'], end=""), cprint(corridas, 'blue', attrs=['bold', 'underline']) print("\nMÉTODO MIXTO DE CONGRUENCIAS") semilla = (int(input("Semilla: "))) p1 = (int(input("a:"))) p2 = (int(input("c:"))) modulo = (int(input("Módulo:"))) print("") stock_ini = (int(input("STOCK INICIAL:"))) metodo_mixto(p_dias, semilla, p1, p2, modulo, aleatorios) chicuadrado.test_chi(aleatorios) cont1, acum1 = 0, 0 cont2, acum2 = 0, 0 prov = [] for i in range(0, dias - 1): dd = buscar_prob(demoraFx_prov_a, aleatorios[i]) if dd is None: dd = buscar_prob(demoraFx_prov_b, aleatorios[i]) cont2 = cont2 + 1 prov.append('B') else: cont1 = cont1 + 1 prov.append('A') diasdemo.append(dd) calcular_demanda(demanda, mu) iniciar_repo(reposicion, dias) iniciar_dia_rep(dia_rep, dias) # calculos total_perdidas = 0 total_ventas = 0 for i in range(0, dias - 1): stock.append(stock_ini) stock_fin.append(0) if demanda[i] <= stock_ini: ventas.append(demanda[i]) dins.append(0) else: ventas.append(stock_ini) dins.append(demanda[i] - stock_ini) total_perdidas = total_perdidas + dins[i] total_ventas = total_ventas + ventas[i] if i + 1 < dias - 1: stock_ini = stock_ini - ventas[i] + reposicion[i + 1] + 3 stock_fin[i] = (stock[i] - ventas[i]) if stock_fin[i] <= stock[i]: pedido.append(ventas[i]) if diasdemo[i] + 1 < dias - 1: dia_rep[i] = diasdemo[i] + 1 if i + dia_rep[i] < dias - 1: reposicion[i + dia_rep[i]] = pedido[i] else: pedido.append(0) if prov[i] == 'A': acum1 = acum1 + pedido[i] elif prov[i] == 'B': acum2 = acum2 + pedido[i] crear_tabla() print("Total Pérdidas:", total_perdidas) print("Total Ventas:", total_ventas) print("\nMayor Venta:", max(ventas)) print("Menor Venta:", min(ventas)) prom_a = round(acum1 / sum(pedido), 2) prom_b = round(acum2 / sum(pedido), 2) print("\nPedidos Proveedor A:", acum1, '{:>13}'.format("Promedio:"), prom_a) print("Pedidos Proveedor B:", acum2, '{:>13}'.format("Promedio:"), prom_b) informe(total_perdidas, total_ventas) x = np.linspace(min(v_dias), max(v_dias), dias - 1) graficar(x, lw=2) v_total_per[corridas - 1] = total_perdidas v_total_vtas[corridas - 1] = sum(ventas) v_mayorVenta[corridas - 1] = max(ventas) v_menorVenta[corridas - 1] = min(ventas) v_total_prov_a[corridas - 1] = acum1 v_total_prov_b[corridas - 1] = acum2 eliminar_vectores() corridas = corridas + 1 tabla_resumen() graficar_total_prov(corridas)
def inicio(p_dias): corridas = 1 for i in range(0, sim): v_total_per.append(0) v_total_vtas.append(0) v_mayorVenta.append(0) v_menorVenta.append(0) calcular_demoraFx(demoraPx, demoraFx) print('\nTABLA DE DEMORA') imprimir_demora(demoraX, demoraPx, demoraFx) while corridas <= sim: print('{: ^34}'.format("")) cprint("ITERACIÓN NÚMERO:", 'blue', attrs=['bold', 'underline'], end=""), cprint(corridas, 'blue', attrs=['bold', 'underline']) print("\nMÉTODO MIXTO DE CONGRUENCIAS") semilla = (int(input("Semilla: "))) p1 = (int(input("a:"))) p2 = (int(input("c:"))) modulo = (int(input("Módulo:"))) print("") stock_ini = (int(input("STOCK INICIAL:"))) metodo_mixto(p_dias, semilla, p1, p2, modulo, aleatorios) chicuadrado.test_chi(aleatorios) for item in aleatorios: dd = buscar_prob(demoraFx, item) diasdemo.append(dd) calcular_demanda(demanda, mu) iniciar_repo(reposicion, dias) iniciar_dia_rep(dia_rep, dias) # calculos total_perdidas = 0 total_ventas = 0 for i in range(0, dias - 1): stock.append(stock_ini) stock_fin.append(0) if demanda[i] <= stock_ini: ventas.append(demanda[i]) dins.append(0) else: ventas.append(stock_ini) dins.append(demanda[i] - stock_ini) total_perdidas = total_perdidas + dins[i] total_ventas = total_ventas + ventas[i] if i + 1 < dias - 1: stock_ini = stock_ini - ventas[i] + reposicion[i + 1] stock_fin[i] = (stock[i] - ventas[i]) if stock_fin[i] <= stock[i]: pedido.append(ventas[i]) if diasdemo[i] + 1 < dias - 1: dia_rep[i] = diasdemo[i] + 1 if i + dia_rep[i] < dias - 1: reposicion[i + dia_rep[i]] = pedido[i] else: pedido.append(0) crear_tabla() print("Total Pérdidas:", total_perdidas) print("Total Ventas:", total_ventas) print("Mayor Venta:", max(ventas)) print("Menor Venta:", min(ventas)) v_total_per[corridas - 1] = total_perdidas v_total_vtas[corridas - 1] = sum(ventas) v_mayorVenta[corridas - 1] = max(ventas) v_menorVenta[corridas - 1] = min(ventas) eliminar_vectores() corridas = corridas + 1 tabla_resumen()