Ver Mensaje Individual
  #9 (permalink)  
Antiguo 20/07/2008, 18:17
_Maxi
 
Fecha de Ingreso: septiembre-2007
Ubicación: Buenos Aires, Argentina.
Mensajes: 95
Antigüedad: 16 años, 7 meses
Puntos: 2
Respuesta: Calcular aleatoriedad pero controlada

Hola. Te voy a dar una mano mas que nada con el pseudo código. Posiblemente tenga algunos errores de sintaxis o de procedimiento lo que escribo, pero fijate que es correcto desde la lógica, y eso es en lo que quería aportar mas que nada.

La manera en que solucionaría eso que proponés ultimo sería con varios if.

Primero usas cosas de lógica o de probabilidad:

Vamos al caso mas facil:
Cita:
Es decir, la variable con el valor de 255, tendria un 99%
La variable con el valor de 1, tendria un 1%.
Pones una variable auxiliar que pueda tomar valores entre 0 y 99.

y le asignas un valor random entre 0 y 99.

primero declaras:
$variable1 = 1;
$variable2 = 255;

después preguntas:

Cita:
Iniciado por php
if ( $varaux == 0)
$variableasignada = $variable1 ;
else
$variableasignada = $variable2;
Entonces hay un 1% de posibilidades de que la variable que vale 1 salga y un 99% de que salga la de 255.

Ahora vamos al otro caso:
Cita:
Una variable con un valor de 128 tendria un 51%,
Y otra con un valor de 64 tendria un 25%
Ahora es un poco distinto. Además agrego una variable3 que tenga un 24% de posibilidades así los números cierran en 100.

$variable1 = 128 ;
$variable2 = 64 ;
$variable3 = lo que quieras ;

Cita:
Iniciado por php
if ( $varaux <= 50 ) // varaux está entre 0 y 50 inclusive (51%)
$variableasignada = $variable1 ;
else if ( ($varaux >= 50) && ($varaux <= 75) ) // varaux está entre 51 y 75 inclusive (25%)
$variableasignada = $variable2;
else $variableasignada = $variable3 ; /* o acá hacés lo que necesites hacer, no necesariamente asignar una variable3 */

PD: esto es lo que entendí yo por "aleatoreidad controlada". Es decir, vos podés controlar con cuánta probabilidad querés que salga una variable, y eso lo controlás con los if.
Los 2 ejemplos en la manera en que los hice están sujetos a porcentajes enteros, no decimales. En ese caso aproximá.

Ahora, si lo que querés es que vaya variando la probabilidad de que ocurran, ahí podrías introducir otras variables aleatorias, y meterlas adentro de esos if.

Última edición por _Maxi; 20/07/2008 a las 18:24