[問題]這支程式是不是寫錯了

作者: 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