2 votos

¿Cómo generar eficazmente una secuencia de enteros aleatorios que sumen 1?

Quiero generar aleatoriamente una secuencia de 10 enteros en el rango [-2, 2] que sumen 1.

La distribución del resultado no es importante. Sólo quiero que la secuencia sea aleatoria y que la suma garantice el valor que quiero.

(Revisando las preguntas anteriores... Es posible que pueda elaborar esta respuesta para satisfacer mis necesidades, pero tal vez no: ¿Cómo generar eficazmente cinco números que sumen uno? )

EDIT: He añadido "eficientemente" porque podría simplemente tirar los dados una y otra vez hasta conseguir una secuencia con la suma correcta, pero ¿cómo es eso divertido?

EDIT: Aunque no me importa que haya un sesgo en la elección de una secuencia concreta, el comentario de Anthony Carapetis me hace pensar que insistir en una selección justa -en la que cualquier solución posible es tan probable como cualquier otra- en realidad facilita el problema. Hoy voy a correr por ese camino y a ver a dónde me lleva.

5voto

Shabaz Puntos 403

Hay $837,100$ secuencias que se suman a $1$ fuera del $5^{10}=9,765,625$ secuencias totales. Podrías escribir un pequeño programa para generar todas las secuencias, sumar cada una y escribir las que sumen $1$ a un archivo. A continuación, genere un número aleatorio en el rango $[0,837099]$ y usar esa.

Si calculas previamente el "triángulo de Pascal" puedes utilizarlo para pasar de un número en $[0,837099]$ a una secuencia. De los $837100$ que se suman a $1$ Hay $142740$ que terminan con $-2$ , $162585$ que terminan en $-1$ , $175725$ que terminan en $0$ , $180325$ que terminan en $1$ y $162585$ que terminan en $2$ . Puede comprobar estos valores para determinar el último elemento de la secuencia y, a continuación, volver al principio. Así que si quieres la secuencia $400000,$ termina con $0$ como $142470+162585+180325 \gt 400000 \gt 142470+162585$ y es el $94675^{\text{th}}$ de esos. Los primeros nueve elementos se suman a $1$ . De los $175725$ secuencias de nueve elementos que suman $1$ El primer $37080+38165=75245$ terminar con $2$ o $1$ por lo que queremos que el $19430^{\text{th}}$ secuencia que termina en $00$ y así sucesivamente.

0voto

Rob Y Puntos 231

Si fuera a generar el conjunto de secuencias que suman uno -- sin generarlas todas y probarlas -- lo haría así:

Los aspectos positivos y negativos de la secuencia deben equilibrarse. La suma de números positivos en la secuencia es uno más que el valor absoluto de la suma de números negativos. Así que si empiezo con una secuencia "correcta", puedo sumar uno a un número y restar uno a otro, y el total sigue siendo 1.

1) Empieza con una secuencia de 10 ceros

2) Elige uno de esos valores y hazlo uno (la primera secuencia correcta)

3) Escoge una respuesta que sea menor que 2 y añade una. Luego escogería un número que sea mayor que -2 y restaría uno. (otra secuencia correcta)

4) Repetir 3

Si lo hiciera metódicamente, acabaría con las 837.100 secuencias correctas que dijo Ross.

Sin embargo, nadie me ha acusado de ser metódico, así que ¿qué pasa si lo hago al azar?

1) Empezar con una secuencia de ceros

2) Elige uno al azar y hazlo uno (una respuesta correcta)

3) Elige al azar uno que sea menor que 2 y añade uno. Elige al azar uno que sea mayor que -2 y réstale uno. (sigue siendo una respuesta correcta)

4) Repite el punto 3 unas 9 veces.

(...unas 9 veces porque la máxima suma posible de positivos es 10, con una suma de negativos de -9, pero añadimos 1 por adelantado. He jugado con ello en mi ordenador y he repetido (3) hasta 1000 veces... el + y el - se equilibran bastante rápido, y cada iteración está garantizada como correcta de todos modos).

Ahora bien, esto no satisface el criterio de que todas las soluciones deben ser igualmente probables ... No hice la prueba, pero no veo cómo podrían ser ... pero mencioné ese criterio sólo porque parecía simplificar las cosas.

Pero esto parece más un truco de aritmética cursi que de matemáticas. La respuesta de Ross parece más correcta matemáticamente.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X