我需要你的帮助,有点问题。我有四个标签,我想显示到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