Numeros aleatorios

Páginas: 7 (1511 palabras) Publicado: 14 de marzo de 2012
10/Nov/11
NUMEROS ALEATORIO
Es posible crear programas en “C” que permite una cierta aproximación a la suerte. La función rand(); genera un entero entre 0 y la constante RAND_MAX. Cada numero en este rango tiene la misma posibilidad de ser elegido.
Para estos programas suele ser conveniente establecer rangos de valores. Por ejemplo, si queremos simular el lanzamiento de una moneda tenemos doseventos, por lo que un cero será el “sello” y un 1 será el “águila”. Otro caso es el lanzamiento de un dado regula de 6 caras. Al usar el operador de modulo con la función rand podremos dimensionar o establecer los rangos. Por ejemplo rand()% 6 dimensiona el lanzamiento del dado. Posteriormente a esto debemos añadir una unidad al resultado

#include<stdlib.h>
#include<stdio.h>
Voidmain (void) {
Int i;
For (i=1; i<=20; i++) {
Printf(“%5d”,1+(rand()%6));
If(i%5==0)printf(“\n”);
}
Getch;
}

La función rand () por si sola en realidad solo genera una serie de números que puedan ser aleatorios, pero no lo son; esto se demuestra corriendo el programa anterior en varias ocasiones. La función srand () toma un argumento entero llamado números verdaderamentealeatorios.
Void main(void) {
Int i;
Unsigned semilla; //solo acepta enteris positivos (unsingned int)
Printf (“de la semilla:”); scanf (“%u”, &semilla);
Srand(semilla);
For(i=1;i<=20;i++){
Printf(“%5d”,1+(rand()%6));
If(i%5==0)printf(“\n”);
}
Getch();

}

La mejor práctica para no capturar una nueva semilla cada ejecución es usar el tiempo del sistema, un número entero. Para ellousamos srand (time (NULL));
Srand ()
Time ()
Null ()
*cuando él se refería a semialeatorio no se usa el srand
*Cuando diga aleatorio si se usa el rand
El formato para usar rand puede usarse de la siguiente forma:
n=a+rand()%b
Dónde:
n=numero aleatorio
a=primer valor del rango
b=factor de dimensionamiento (ancho del rango)
PRACTICA:
*Escribir un programa que lance (sin imprimir) diez mildados de 6 lados y sumar cuantas veces cae cada número.
*Escribir un programa que pida cuantos lanzamientos de un volado se hacen, realizados (sin imprimir) y dar los resultados finales.

11 /Nov/11
Recursión o recursividad.
Los programas vistos hasta ahora se estructuran como funciones que una a otra de forma disciplinada y jerárquica, pero ciertos problemas se pueden abordar confunciones que se llama así mismas .
Cuando una función hace esto se le considera recursiva.
Una función recursiva solo sabe resolver un caso base. Cuando esto ocurre , la función devuelve un resultado. Si por el contrario, la función recibe un caso más complejo, busca dividir el problema en dos partes : una que si sabe cómo resolver y otra que no. Para que ocurra la recusion la segunda parte debeparecerse al problema original pero en una forma más simple o más pequeña. Puesto que el nuevo problema se parece al original, la función ejecuta una nueva copia de sí misma para trabajar con la parte reducida. Esto es la recursividad. Este paso recursivo requiere tener una sentencia return, para devolver el valor resuelto de la simplificación y así combinarlo con la parte que si se hubiera podidoresolver. El paso recursivo se ejecuta mientras la llamada original a la función este abierta (no haya terminado su ejecución). El paso recursivo puede dar pie a muchas llamadas recursivas, pues el problema original se va dividiendo sucesivamente, con el objetivo de acercarse gradualmente al caso base, que será cuando tenga una solución y la devuelva a la copia anterior de la función, hastacompletar la solución.
Un ejemplo simple de recursión es el factorial, indicado por n! y definido como n!= n*(n-1)*(n-2)*…*1 para el cual sabemos que 1! Es 1 y 0! También igual a 1. Programando estructuradamente, la solución es
Factorial = 1
For(contador ==numero, contador>=1;contador--){
Factorial *=contador
}

La definición recursiva de la operación puede ser n!=n*(n-1)!, con lo cual...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Numeros aleatorios
  • Numeros aleatorios
  • Numeros Aleatorios
  • Numeros aleatorios
  • Numeros aleatorios
  • Numeros aleatorios
  • Numeros Aleatorios
  • Numeros Pseudo Aleatorios

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS