x1=random(0,C,a1) ;
x2=random(0,C,a2);
x3=C-x1-x2
random(x,y,z)=[x,y]區間內期望為z的隨機自然數(隨便你用什麼分佈)
---------
上面考慮不周,考慮到x3的非負性的話,用幾何方式生成吧:
如圖所示,在平面上做一個矩形A(-B,0)(B,0)(B,C)(-B,C),在y軸上取(0,a3)(0,a2+a3)兩點,過這兩點做直線與矩形相交,斜率分別為k1、k2,六根直線所有交點的x座標絕對值都大於等於1即可。
在(-B,B)上以均勻分佈隨機取一點做直線與y軸平行,得三根線段,線段長從上到下即為(x1,x2,x3)
易證明均值合規,方差可以透過控制每個梯形上下兩邊的斜率差來控制,方法可以擴充套件到xn
又忘了自然數要求,xn均取整到最近自然數吧。
x1=random(0,C,a1) ;
x2=random(0,C,a2);
x3=C-x1-x2
random(x,y,z)=[x,y]區間內期望為z的隨機自然數(隨便你用什麼分佈)
---------
上面考慮不周,考慮到x3的非負性的話,用幾何方式生成吧:
如圖所示,在平面上做一個矩形A(-B,0)(B,0)(B,C)(-B,C),在y軸上取(0,a3)(0,a2+a3)兩點,過這兩點做直線與矩形相交,斜率分別為k1、k2,六根直線所有交點的x座標絕對值都大於等於1即可。
在(-B,B)上以均勻分佈隨機取一點做直線與y軸平行,得三根線段,線段長從上到下即為(x1,x2,x3)
易證明均值合規,方差可以透過控制每個梯形上下兩邊的斜率差來控制,方法可以擴充套件到xn
又忘了自然數要求,xn均取整到最近自然數吧。