Autor
|
Tema: Probabilidad de que salga un numero aleatorio (Leído 3,728 veces)
|
Sr_Malweriks
Desconectado
Mensajes: 41
|
Saludos!, terminando un proyecto en mente que llevo trabajando desde hace mucho tiempo, se me ocurrió la idea de realizar un módulo en el que escriba, dentro de una matriz (una casilla que no esté ocupada y aleatoria), un numero aleatorio ( 2 o 4) con una probabilidad de que salga el 2 en otro parámetro, no sé si me he explicado bien xD. De momento llevo escrito esto: void poner_valor_aleatorio(tablero &t, int prob){ //VARIABLES int ale; srand(time(NULL)); //cambiamos el valor de la semilla //Condición para que salga 2 o 4 (inicialmente con un 50 %): ale = rand()%2; if (ale == 0) ale = 2; if (ale == 1) ale = 4; //TO DO // Para hacer referencia a una casilla se utiliza t.matriz[fila][columna] // generar la probabilidad (de que salga el 2) introducido como parametro y // colocar ese numero en una casilla vacia aleatoria del tablero. // Tengo dos modulos creados: /* * casilla_vacia(tablero &t, int fila, int columna) Devuelve false si está llena true si no. * poner_valor(tablero &t, int fila, int columna, int valor) Coloca el valor en esa casilla. * * */ }
La parte // TO DO es la que no consigo sacarlo, he pensado mil formas y no soy capaz.... ¿Alguien puede echarme una manita?
|
|
« Última modificación: 4 Enero 2016, 23:22 pm por Sr_Malweriks »
|
En línea
|
"Mientras tu duermes, hay otra persona en otro lugar del planeta trabajando para ser mejor en lo que tu quieres llegar a ser"
|
|
|
JavierScars
Desconectado
Mensajes: 116
|
Yo quizás te pueda ayudar pero... No entendí...
|
|
|
En línea
|
Usa lo malo de la vida a tu favor, escala montañas de problemas para deslizarte sobre soluciones, derrumba muros de decepciones para encontrar la libertar de la felicidad, y quema la leña del fracaso para calentarte con el éxito. Recuerda que sin la oscuridad la luz no brillaría tanto.
|
|
|
MAFUS
Desconectado
Mensajes: 1.603
|
Entiendo que, en un tablero quieres llenar las casillas vacías aleatoriamente con números aleatorios y quieres forzar la probabilidad de que salga un número concreto.
|
|
|
En línea
|
|
|
|
Wick3D
Desconectado
Mensajes: 147
<?php echo "Im your source code"; ?>
|
Pero.....si estás intentando forzar la salida de un número "aleatorio", entonces ya no es aletorio(?), creo que no lo entiendo tampoco mucho.
|
|
|
En línea
|
|
|
|
Sr_Malweriks
Desconectado
Mensajes: 41
|
Entiendo que, en un tablero quieres llenar las casillas vacías aleatoriamente con números aleatorios y quieres forzar la probabilidad de que salga un número concreto.
Exacto, la idea es, teniendo un tablero (vacio), se vayan rellenando las casillas (de forma aleatoria), es decir, perimero casilla (3,3), luego (2,1) (POR EJEMPLO), siempre y cuando esté vacía. Ese valor que se quiere introducir en la casilla tiene que ser 2 o 4 (es decir, dos valores aleatorios) pero tambien se debe de incluir un numero que hace referencia al procentaje de posibilidad de que salga el 2. Me explico: - Si pongo 50 (será un 50%) es decir, la probabilidad de que se ponga un 2 o un 4 es igual. - Si pongo un 25 (será un 25%) es decir, la probabilidad de que salga un 2 será menor de que salga un 4. - Si pongo un 80 (será un 80%) es decir, la probabilidad de que salga un 2 será mucho mayor de que salga el 4. En conclusión, cuando ejecute el modulo, añadirá un 2 o un 4 (dependiendo del parámetro de probabilidad) dentro de una casilla aleatoria del tablero.
|
|
|
En línea
|
"Mientras tu duermes, hay otra persona en otro lugar del planeta trabajando para ser mejor en lo que tu quieres llegar a ser"
|
|
|
ivancea96
Desconectado
Mensajes: 3.412
ASMático
|
Siendo así: ale = 2; else ale = 4;
|
|
|
En línea
|
|
|
|
Sr_Malweriks
Desconectado
Mensajes: 41
|
Joder, pues es verdad, no había caido en eso....madre mia que empanao soy, gracias
Siendo así: ale = 2; else ale = 4;
Por cierto, no sería <= prob ?
|
|
« Última modificación: 7 Enero 2016, 19:12 pm por Eternal Idol »
|
En línea
|
"Mientras tu duermes, hay otra persona en otro lugar del planeta trabajando para ser mejor en lo que tu quieres llegar a ser"
|
|
|
0xFer
Desconectado
Mensajes: 400
|
Por cierto, no sería <= prob ? rand()%100 genera un número en [0,99], Si por ejemplo 'prob' es 50 entonces nos interesa un número en [0,49] o sea un número menor que 50.
|
|
|
En línea
|
int getRandomNumber(){ return 4; //chosen by fair dice roll //guaranteed to be random }
|
|
|
ivancea96
Desconectado
Mensajes: 3.412
ASMático
|
Por cierto, no sería <= prob ?
A parte de la explicación teórica de 0xFer: En estos cosas, la mejor forma de comprobarlo con exactitud, es probar <mentalmente>, los casos más extremos. Por ejemplo, el 0. Si la probabilidad es de 0, da igual qué número salga, que no puede salir N<0. Sin embargo, si se hubiera puesto N<=0, sí habría una posibilidad. Luego con el 100, tienes una prueba parecida xD
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Número aleatorio
Programación Visual Basic
|
& eDu &
|
9
|
3,380
|
7 Junio 2008, 09:08 am
por byebye
|
|
|
calcular numero aleatorio de 1 a n pero la probabilidad debe ser creciente
Java
|
kinos
|
4
|
9,880
|
19 Septiembre 2010, 02:07 am
por Carloswaldo
|
|
|
numero aleatorio
Programación Visual Basic
|
andaluz
|
4
|
2,588
|
21 Octubre 2010, 23:28 pm
por raul338
|
|
|
numero aleatorio
Programación C/C++
|
julipoedro
|
4
|
2,612
|
29 Noviembre 2015, 01:53 am
por do-while
|
|
|
cual es la probabilidad de obtener un numero par al lanzar dos dados?
Foro Libre
|
nixonanacona01
|
2
|
9,556
|
21 Octubre 2016, 03:37 am
por Sin Nick xD
|
|