Numeros Aleatorios en VBScript

Páginas: 5 (1210 palabras) Publicado: 30 de marzo de 2012
Laboratorio de análisis y simulación de sistemas

Introducción
Los números aleatorios son de gran importancia dentro de las matemáticas y su gran terreno de aplicación dentro de la ciencia los define como un elemento fundamental de estudio. En este sentido la práctica que se llevó acabo trato acerca de realizar un programa que implementa una fórmula para obtener números pseudoaleatorios con elfin de llevar acabo comparaciones con distintos datos de entrada y así comparar los resultados obtenidos mediante gráficas de dispersión y poder concluir cuales fueron los que arrojaron resultados más satisfactorios.

Código VB

''generacion de numeros pseudoaleatorios ''Inputs estado del generador (a,c,m) semula (x0) ''numero de preudoaleatorios a generar(n) ''Salidas vetor(ui)i=1,..,N depseudoaleatorios Sub pseudo_aleatorios() Dim a As Double Dim c As Double Dim m As Double Dim N As Integer Dim x0 As Double Dim xold As Double Dim xnew As Double Dim U() As Double ''Se piden los datos al usuario y se guardan en las variables correspondientes. a = InputBox("Dame el valor de a") c = InputBox("Dame el valor de c") m = InputBox("Dame el valor de modulo") x0 = InputBox("Dame el valor dela semilla") N = InputBox("Dame la cantidad de numeros pseudo-aleatorios que quieras generar") ''Se redimensiona el vector con el valor dado por el usuario. ReDim U(N) As Double ''Con este ciclo se realiza el algoritmo para la obtención de números pseudoaleatorios For i = 1 To N xold = x0 ''Aqui mando a llamar a la función que implementa la operación modulo xnew = modulo(a, xold, c, m) U(i) = xnew/ m x0 = xnew Next i ''Se manda a imprimir la primera columna con los números del 1 al 20 ''La segunda columna se imprimen los valores de U(i) tambien del 1 al 20 For i = 1 To 20

Cells(i, 1).Value = i Cells(i, 2).Value = U(i) Next i ''Se manda a imprimir los 10000 números generados en la columna T For i = 1 To N Cells(i, 20).Value = U(i) Next i ''Se crea la gráfica con los números generadosActiveSheet.Shapes.AddChart.Select ActiveChart.ChartType = xlXYScatter ActiveChart.SeriesCollection.NewSeries ActiveChart.SeriesCollection(1).XValues = "=Hoja1!$T$1:$T$9999" ActiveChart.SeriesCollection(1).Values = "=Hoja1!$T$2:$T$10000" Range("N11").Select ''Se le informa al usuario que el programa terminó exitosamente MsgBox ("El programa termino exitosamente") End Sub ''Función que implementa laoperación modulo para números reales Function modulo(a, xold, c, m) Dim a1 As Double Dim a2 As Double a1 = (a * xold) + c a2 = Int(a1 / m) modulo = a1 - (a2 * m) End Function

Caso 1: a = 25214903917, c = 11, m = 2e48, X0 = 389

Caso 2: a = 1103515245, c = 12345, m = 2e32, X0 = 389

Caso 3: a = 237, c = 0, m = 18989, X0 = 389

Caso 4: a = 37, c = 3, m = 1283, X0 = 389

Comentarios
Elcaso 2 es el más eficaz puesto como lo marca la gráfica de dispersión los números se generan no tienen correlación o es más difícil hallar una secuencia, esto significa que su repetición es mínima. Al contrario de los casos 3 y 4 donde inmediatamente se puede observar una secuencia lo cual llevaría a concluir que los números generados se repiten en un porcentaje mucho mayor.

Conclusiones
Enconclusión se observó en la práctica como desarrollar programas que generen números pseudoaleatorios pero también la dificultad que implica obtener las entradas correctas para que los números sean más al azar y minimicen su taza de repetición

Parte 2
La fórmula para el cálculo de la media teórica es:

La fórmula para el cálculo de la desviación estándar es:


Código
Dim w() As DoubleSub main() Dim a As Double Dim c As Double Dim m As Double Dim x0 As Double Dim n As Integer ''Definicion de constantes a = 1103515245 c = 12345 m = 2E+32 n = InputBox("Dame la cantidad de numeros aleatorios que deseas:") ReDim arreglo(n) As Double x0 = InputBox("Dame el valor de la semilla:") ''llamada a subrutina Call pseudo_aleatorios(a, c, m, x0, n) ''Con este ciclo se realiza el algoritmo...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • NÚMEROS ALEATORIOS
  • Numeros aleatorios
  • Numeros aleatorios
  • Numeros Aleatorios
  • Numeros aleatorios
  • Numeros aleatorios
  • Numeros aleatorios
  • Numeros Aleatorios

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS