lijunwsp 发布留言 2008-7-11 09:20
随机获取数值
有这样一个题目,求大家帮助解答下,谢谢
给任意几位数,有可能是5位、6位、7位数,位数是不定的,如果是5位,就是12345,6位就是123456,依此类推,看这些数有多种种组合,从这些组合中随机抽出10位数,是随机的
例如:给的是5位数,我现在只能让他生成所有不同的组合,遇到的问题是:
1.我不知道如何随机抽取10个数
2.如果是6位数那我又得写个6个潜逃循环,太麻烦了
希望大家给个优化一些的算法,谢谢
private void butMake_Click(object sender, EventArgs e)
{
int i1, i2, i3, i4,i5;
int sum;
string str = string.Empty;
sum = 0;
txtresult.Text = "";
for (i1 = 1; i1 < 6; i1++)
{
for (i2 = 1; i2 < 6; i2++)
{
for (i3 = 1; i3 < 6; i3++)
{
for (i4 = 1; i4 < 6; i4++)
{
for (i5 = 1; i5 < 6; i5++)
{
sum = sum + 1;
str = str + i1.ToString() + i2.ToString() + i3.ToString() + i4.ToString() + i5.ToString() = "\r\n";
}
}
}
}
}
lblnum.Text = sum.ToString();
txtresult.text = str;
}
bygg 发布留言 2008-7-11 10:24
///
/// 获取指定位数的数字字符串
/// ///
字符串的长度
///
private string getRandomStr(int strLen)
{
string retStr = "";
if (strLen < 10)
{
Random r = new Random();
string subStr = string.Empty;
for (int i = 0; i < strLen; i++)
{
subStr = r.Next(0, 9).ToString(); //获得随机数(0到9之间)
while (true)
{
if (retStr.IndexOf(subStr) == -1) //不存在相同数字
{
retStr += subStr;
break;
}
else //存在相同数字,重新取值
{
subStr = r.Next(0, 9).ToString();
}
}
}
}
return retStr;
}
这个方法是获取一个没有重复数字的字符串. 希望对你有帮助.
页: [1]