Foros del Web » Programando para Internet » Javascript »

probabilidad de escoger

Estas en el tema de probabilidad de escoger en el foro de Javascript en Foros del Web. Bueno aqui va la duda directamente: Tengo que escoger aleatoriamente entre unos elementos, pongamos por ejemplo 4. Esos elementos tienen una propiedad color, y segun ...
  #1 (permalink)  
Antiguo 03/01/2004, 18:51
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
probabilidad de escoger

Bueno aqui va la duda directamente:

Tengo que escoger aleatoriamente entre unos elementos, pongamos por ejemplo 4. Esos elementos tienen una propiedad color, y segun sea este color, habra diferentes probabilidades de escogerlo. Un ejemplo practico:

4 elementos. 1:rojo; 2:verde; 3:azul; 4:naranja;. Para los elementos habra las siguientes probabilidades (que no suman 100, abria que ajustarlas): rojo:30%; verde:60%; azul:10%; naranja:30%;.
Esta claro que normalmente saldra verde, osea escogera el elemento 2, pero sólo normalmente, tiene que ser posible tambien escoger azul o rojo o naranja.

Mi duda es que no se me ocurre una manera óptima de hacer esto, solo con muuucho codigo y por eso propongo esta pregunta al publico, para ver si alguien me ayuda.


Muchas gracias y a ver si hay suerte y nos inspiramos todos
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #2 (permalink)  
Antiguo 05/01/2004, 07:37
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Se me ha ocurrido esta forma curiosa
Código PHP:
<script>
color=[]
elegido=[]
vez=0;
function 
este(color,probabilidad){
this.color=color;
this.probabilidad=probabilidad;
}

color[0]=new este("rojo",40);
color[1]=new este("azul",30);
color[2]=new este("amarillo",10);
color[3]=new este("naranja",20);

for(
a=0;a<color.length;a++){

for(
b=0;b<color[a].probabilidad;b++){
elegido[vez]=color[a].color;
vez+=1;
}
}

seleccionado=parseInt(vez*Math.random(1));
alert(elegido[seleccionado]);

</script> 
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #3 (permalink)  
Antiguo 05/01/2004, 07:45
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Ah, pues no esta nada mal . Utilizare algo parecido. Gracias KarlanKas!
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #4 (permalink)  
Antiguo 05/01/2004, 07:54
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
De nada! Me alegro de que te haya servido.
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:36.