elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Probabilidad de que salga un numero aleatorio
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Probabilidad de que salga un numero aleatorio  (Leído 3,420 veces)
Sr_Malweriks

Desconectado Desconectado

Mensajes: 41



Ver Perfil
Probabilidad de que salga un numero aleatorio
« en: 4 Enero 2016, 23:17 pm »

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:
Código
  1.  
  2. void poner_valor_aleatorio(tablero &t, int prob){
  3. //VARIABLES
  4. int ale;
  5. srand(time(NULL)); //cambiamos el valor de la semilla
  6.  
  7.        //Condición para que salga 2 o 4 (inicialmente con un 50 %):
  8. ale = rand()%2;
  9. if (ale == 0)
  10. ale = 2;
  11. if (ale == 1)
  12. ale = 4;
  13.  
  14.    //TO DO
  15. // Para hacer referencia a una casilla se utiliza t.matriz[fila][columna]
  16.    // generar la probabilidad (de que salga el 2) introducido como parametro y
  17. // colocar ese numero en una casilla vacia aleatoria del tablero.
  18. // Tengo dos modulos creados:
  19. /*
  20. * casilla_vacia(tablero &t, int fila, int columna)  Devuelve false si está llena true si no.
  21. * poner_valor(tablero &t, int fila, int columna, int valor) Coloca el valor en esa casilla.
  22. *
  23. *
  24. */
  25.  
  26.  
  27.  
  28.  
  29.  
  30. }
  31.  
  32.  
  33.  
  34.  

La parte // TO DO es la que no consigo sacarlo, he pensado mil formas y no soy capaz....
¿Alguien puede echarme una manita? :D


« Ú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 Desconectado

Mensajes: 116



Ver Perfil
Re: Probabilidad de que salga un numero aleatorio
« Respuesta #1 en: 5 Enero 2016, 01:47 am »

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 Desconectado

Mensajes: 1.603



Ver Perfil
Re: Probabilidad de que salga un numero aleatorio
« Respuesta #2 en: 5 Enero 2016, 02:27 am »

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 Desconectado

Mensajes: 147


<?php echo "Im your source code"; ?>


Ver Perfil
Re: Probabilidad de que salga un numero aleatorio
« Respuesta #3 en: 5 Enero 2016, 02:44 am »

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 Desconectado

Mensajes: 41



Ver Perfil
Re: Probabilidad de que salga un numero aleatorio
« Respuesta #4 en: 5 Enero 2016, 18:44 pm »

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 Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Probabilidad de que salga un numero aleatorio
« Respuesta #5 en: 5 Enero 2016, 21:56 pm »

Siendo así:
Código
  1. if(rand()%100 < prob)
  2.    ale = 2;
  3. else
  4.    ale = 4;
En línea

Sr_Malweriks

Desconectado Desconectado

Mensajes: 41



Ver Perfil
Re: Probabilidad de que salga un numero aleatorio
« Respuesta #6 en: 5 Enero 2016, 22:40 pm »

Joder, pues es verdad, no había caido en eso....madre mia que empanao soy, gracias :D



Siendo así:
Código
  1. if(rand()%100 < prob)
  2.    ale = 2;
  3. else
  4.    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 Desconectado

Mensajes: 400



Ver Perfil
Re: Probabilidad de que salga un numero aleatorio
« Respuesta #7 en: 7 Enero 2016, 18:56 pm »

Citar
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

Código
  1. int getRandomNumber(){
  2.    return 4; //chosen by fair dice roll
  3.              //guaranteed to be random
  4. }
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Probabilidad de que salga un numero aleatorio
« Respuesta #8 en: 7 Enero 2016, 20:10 pm »

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

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Número aleatorio
Programación Visual Basic
& eDu & 9 3,039 Último mensaje 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,688 Último mensaje 19 Septiembre 2010, 02:07 am
por Carloswaldo
numero aleatorio
Programación Visual Basic
andaluz 4 2,422 Último mensaje 21 Octubre 2010, 23:28 pm
por raul338
numero aleatorio
Programación C/C++
julipoedro 4 2,367 Último mensaje 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,195 Último mensaje 21 Octubre 2016, 03:37 am
por Sin Nick xD
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines