我想使用递归,调用随机函数生成一个指定的数字,观察这个随机函数的生成的过程
但是得到的结果是:
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,
9,9,9,9,9,9,9,9,9,9,9,9,9,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,6,6,6,6,6,6,
6,6,6,6,6,6,6,6,5,难道生成一个 5 需要循环这么多次吗?还是写的代码有问题?
private void Form1_Load(object sender, EventArgs e)
{
gg(10);
}
int gg(int i)
{
int i1 = new Random().Next(i);
textBox1.Text += i1.ToString() + ","; if (i1 != 5)
{ i1 = gg(i); }
return i1;
}
但是得到的结果是:
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,
9,9,9,9,9,9,9,9,9,9,9,9,9,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,6,6,6,6,6,6,
6,6,6,6,6,6,6,6,5,难道生成一个 5 需要循环这么多次吗?还是写的代码有问题?
private void Form1_Load(object sender, EventArgs e)
{
gg(10);
}
int gg(int i)
{
int i1 = new Random().Next(i);
textBox1.Text += i1.ToString() + ","; if (i1 != 5)
{ i1 = gg(i); }
return i1;
}
string[] s = textBox1.Text.Split(',');
if(s.Length != 4) // 有4个,号
{
i1 = gg(i);
}
我是想知道生成 5 实际循环的次数(及每次生成的数字)
判断 s.Length 只是限定了生成的个数,大多数时候并不能得到 5
麻烦能不能完成的写一下代码,马上结贴!!
http://www.cnblogs.com/hangxin1940/archive/2008/04/17/1158664.html
改成:
Random rnd=new Random();
int gg(int i)
{
int i1 = rnd.Next(i);
textBox1.Text += i1.ToString() + ","; if (i1 != 5)
{ i1 = gg(i); }//这就是递归,没错的。
return i1;
}