Red de conocimiento informático - Material del sitio web - Cómo utilizar JS para implementar el algoritmo del sobre rojo de WeChat

Cómo utilizar JS para implementar el algoritmo del sobre rojo de WeChat

Lo que les traigo esta vez es cómo usar JS para implementar el algoritmo del sobre rojo de WeChat. ¿Cuáles son las precauciones al usar JS para implementar el algoritmo del sobre rojo de WeChat?

Suponemos que hay un sobre rojo de 100 yuanes para enviar a 10 personas. Para garantizar la equidad, el algoritmo debe garantizar los siguientes principios:

Todos pueden obtener al menos 0,01 yuanes

Todos tienen las mismas oportunidades

La suma de las cantidades de todos son iguales a 100 yuanes

1. Implementación simple de la función aleatoria

La idea general de muchos amigos es:

Paso 1: seleccionar un al azar número del 0 al 100, obtenga el primer monto del sobre rojo.

Paso 2: seleccione aleatoriamente un número de 0: la cantidad restante para obtener la cantidad del segundo sobre rojo.

Paso 3:...

El último paso es enviar todo el dinero restante a la última persona.

Y así sucesivamente, consigue los 10 sobres rojos. Pero no sé si te habrás dado cuenta, esto es evidentemente injusto. La persona que agarra a la primera persona tiene una ventaja. El rango aleatorio de la primera persona es de 0 a 100 y es posible obtener una cantidad mayor. El rango aleatorio para la última persona es muy pequeño. Si la primera persona toma $90, entonces la última persona no tiene posibilidades de obtener más de $10. Usemos código para simular este proceso:

Los resultados de la prueba son los siguientes:

Los amigos cuidadosos encontrarán que el valor del saldo es incorrecto. Este es un problema de JavaScript flotante. operaciones puntuales. Conozca el problema. Por supuesto, hay muchas formas de resolver este problema. Si tienes buenas ideas, déjame un mensaje.

Creo que domina el método después de leer el caso de este artículo. Para obtener más información interesante, preste atención a otros artículos relacionados en Gxl.com.

Lectura recomendada:

Cómo usar filtros en vue

Cómo usar vue para determinar la clase de dom