我需要你的幫助,有點問題。我有四個標籤,我想顯示到100 0它們之間的隨機值,並把它們的總和必須是100如何生成總和爲預定值的N個隨機值?
這是我的代碼:
private void randomly_Click(object sender, EventArgs e)
{
double alpha = 0, beta = 0, gamma = 0, delta = 0;
double temp;
int tempDouble;
Random rnd = new Random();
alpha = rnd.Next(0, 100);
temp = 100 - alpha;
tempDouble = (int)temp;
beta = rnd.Next(0, tempDouble);
temp = 100 - (alpha + beta);
tempDouble = (int)temp;
gamma = rnd.Next(0, tempDouble);
temp = 100 - (alpha + beta + gamma);
tempDouble = (int)temp;
delta = rnd.Next(0, tempDouble);
temp = alpha + beta + delta + gamma;
temp = 100 - temp;
temp = temp/4;
alpha = alpha + temp;
beta = beta + temp;
gamma = gamma + temp;
delta = delta + temp;
cInsertion.Text = alpha.ToString();
cMoyens.Text = beta.ToString();
cInternational.Text = gamma.ToString();
cRecherche.Text = delta.ToString();
}
的問題是,我賦予alpha值biggest
的值,delta值爲lowest
的值。
有什麼辦法讓他們有一個真正的random
值?
A **真**隨機數?總之,沒有。只有一個僞隨機數。 隨機數發生器運行時鐘週期,通常會看到重複的序列。使用的種子取決於當前DateTime.Now的.Tick屬性(*如果我沒有記錯*)。有許多像樣的隨機數字生成器和API。我會建議尋找那些,如果你覺得你沒有時間或想要推出自己的。 – IAbstract 2011-04-30 16:00:43