Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

94
Vistas
número aleatorio y porcentaje - valor de selección

De alguna manera necesito encontrar una solución al problema, sin embargo, no puedo saber exactamente qué y cómo se puede lograr.

Imaginemos que tengo algunas propiedades

prop1 - 7%

prop2 -3%

prop4 - 35%

y así. los valores anteriores (7,3,35) son cambios porcentuales de ser seleccionado.

Ahora, tengo un número aleatorio entre 0 y 1.

¿Puedo de alguna manera usar la información anterior y elegir la propiedad según ese número aleatorio y los porcentajes?

Cómo puede ser posible ? Perdón por mi pregunta fuera de este mundo.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Puede usar un número aleatorio para elegir una opción en una lista ponderada de opciones, ya sea que la suma de todas las ponderaciones sume 100 o no, usando este algoritmo:

  1. Crea un número aleatorio entre 0 y 1
  2. Multiplique ese número aleatorio por la suma de sus ponderaciones
  3. Repita sus opciones, manteniendo un total acumulado de las ponderaciones de todas las opciones consideradas hasta el momento. Una vez que su total acumulado esté por encima del número que calculó, habrá encontrado su artículo elegido

Algún código de ejemplo:

 const options = [ { id: 1, weight: 0.5 }, { id: 2, weight: 2 }, { id: 3, weight: 1 }, ]; const pick = function (options) { const weightTotal = options.reduce((sum, option) => sum + option.weight, 0); const seed = Math.random(); const weightedSeed = seed * weightTotal; let runningTotal = 0; for (let option of options) { runningTotal += option.weight; if (runningTotal > weightedSeed) { return option; } } }; console.log(pick(options).id);

Este método requiere que sus opciones disponibles sean iterables, pero su orden no importa ya que de todos modos está usando una semilla aleatoria.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda