Generación de N-1 nº naturales aleatorios cuya suma vale N
Publicado por Aitor (49 intervenciones) el 17/03/2017 11:20:06
¡Hola!
La verdad es que no se me ocurre qué más probar, el título parece bastante explicativo de por sí...
He probado ésto (http://www.lawebdelprogramador.com/foros/Matlab/703495-Limites-para-generacion-de-numeros-aleatorios.html) pero tarda demasiado tiempo en ejecutar.
Alguna forma de hacer algo lo más eficiente posible?
Muchas gracias de antemano chicos, y un saludo.
La verdad es que no se me ocurre qué más probar, el título parece bastante explicativo de por sí...
He probado ésto (http://www.lawebdelprogramador.com/foros/Matlab/703495-Limites-para-generacion-de-numeros-aleatorios.html) pero tarda demasiado tiempo en ejecutar.
1
2
3
4
5
6
7
8
9
10
11
12
clear all
N=1999;
a=0; b=2000;
while 1
r =round( a + (b-a).*rand(1,N));
suma=sum(r);
if sum(r)==2000
display(r)
display(suma)
break;
end
end
Alguna forma de hacer algo lo más eficiente posible?
Muchas gracias de antemano chicos, y un saludo.
Valora esta pregunta
0