[问题]这支程式是不是写错了

楼主: ljuyentintho (小刘)   2016-06-10 16:25:45
以下是程式码:
x=rand(1,1);
y=rand(1,1);
n=x+y;
if n~=1
x=rand(1,1);
y=rand(1,1);
n=x+y;
end
我希望产生出的x跟y在0~1之间
然后n是x+y
如果n不等于1的时候重跑一次
说穿了就是希望随机产生一组x跟y
但x+y一定要等于1这样
可是我看我的output的n一直都不是1
是写错了还是忘了加什么吗?
作者: celestialgod (天)   2016-06-10 16:58:00
为什么不用x=rand(1,1); y=1-x;你这里写错的原因是第二次不见得加起来也是1
楼主: ljuyentintho (小刘)   2016-06-10 17:46:00
因为我到时候想做的是不只有两变量可能最多到九变量一样每个变量的范围是0~1 然后相加还是1
作者: rex0707 (我就是我)   2016-06-10 18:08:00
随机产生浮点数的相加要刚好等于一的机率很小吧...觉得你可以随机产生九个数字 然后再用这九个数字当作权重把1分配给这九个数字a=rand(1,9) ; b=sum(a) ; a=a/b 则得到 sum(a) = 1有点像是把a这个向量做normalize的概念
作者: ts04953635 (阿G)   2016-06-11 16:22:00
你应该用while吧。。
楼主: ljuyentintho (小刘)   2016-06-19 03:38:00
已解决 感谢楼上的大家

Links booklink

Contact Us: admin [ a t ] ucptt.com