我一直在玩耍,写下这段小小的代码。我试图翻转定义次数的硬币,然后计算我得到的尾数和头数。所以这里是:翻转硬币问题
private void Start_Click(object sender, EventArgs e)
{
int headss = 0;
int tailss = 0;
int random2, g;
string i = textBox1.Text;
int input2, input;
bool NumberCheck = int.TryParse(i, out input2);
if (textBox1.Text == String.Empty) // check for empty string, when true
MessageBox.Show("Enter a valid number between 0 and 100000.");
else // check for empty string, when false
if (!NumberCheck) // number check, when false
{
textBox1.Text = String.Empty;
MessageBox.Show("Enter a valid number between 0 and 100000.");
}
else
{
input = Convert.ToInt32(textBox1.Text);
for (g = 0; g < input; g++)
{
Random random = new Random();
random2 = random.Next(2);
if (random2 == 0)
{
headss++;
}
else if (random2 == 1)
{
tailss++;
}
}
}
heads.Text = Convert.ToString(headss);
tails.Text = Convert.ToString(tailss);
}
问题是,我一直显示内容时出现问题。它甚至不会显示出正确的结果。有任何想法吗?
编辑。解决方案:移动以下行3行了:d
Random random = new Random();
显示器看起来不错,但翻转并不好。 “随机”的默认种子基于系统时钟,其分辨率不是很好。通过在循环中每次创建一个新的'Random'对象,您将在许多迭代中反复得到相同的种子,因此您的翻转将不会非常随意。 – mquander 2011-04-25 05:47:41