Obteniendo N números aleatorios cuya suma es M

Resuelto marionmaiden asked hace 14 años • 9 respuestas

Quiero obtener N números aleatorios cuya suma sea un valor.

Por ejemplo, supongamos que quiero 5 números aleatorios que sumen 1.

Entonces, una posibilidad válida es:

0.2 0.2 0.2 0.2 0.2

Otra posibilidad es:

0.8 0.1 0.03 0.03 0.04

Etcétera. Necesito esto para la creación de una matriz de pertenencias para Fuzzy C-means.

marionmaiden avatar Apr 15 '10 01:04 marionmaiden
Aceptado

Respuesta corta:

Simplemente genere N números aleatorios, calcule su suma, divida cada uno por la suma y multiplíquelo por M.

Respuesta más larga:

La solución anterior no produce una distribución uniforme, lo que podría ser un problema según para qué se utilicen estos números aleatorios. Otro método propuesto por Matti Virkkunen:

Genere N-1 números aleatorios entre 0 y 1, agregue los números 0 y 1 a la lista, ordénelos y tome las diferencias de los números adyacentes.

Esto produce una distribución uniforme como se explica aquí .

Guillaume avatar Apr 14 '2010 18:04 Guillaume

Genere N-1 números aleatorios entre 0 y 1, agregue los números 0 y 1 a la lista, ordénelos y tome las diferencias de los números adyacentes.

Matti Virkkunen avatar Apr 14 '2010 18:04 Matti Virkkunen