c#编译一个1~32随机选取4个数字,但要求4个数字都不相同,求相应的代码?
{//随机类Randomr=newRandom();//产生一个0~33的数,包括下线不包括上线inti=r.Next(0,33);richTextBox2.Text+=...
{
//随机类
Random r = new Random();
//产生一个0~33的数,包括下线不包括上线
int i = r.Next(0, 33);
richTextBox2.Text += i.ToString() + "\t";
int n = r.Next(0, 33);
richTextBox2.Text += n.ToString() + "\t";
........
这样的随机选择会出现数字相同的,怎么避免选了的数字不会再选的?
求修改后可以运行的代码..... 展开
//随机类
Random r = new Random();
//产生一个0~33的数,包括下线不包括上线
int i = r.Next(0, 33);
richTextBox2.Text += i.ToString() + "\t";
int n = r.Next(0, 33);
richTextBox2.Text += n.ToString() + "\t";
........
这样的随机选择会出现数字相同的,怎么避免选了的数字不会再选的?
求修改后可以运行的代码..... 展开
8个回答
展开全部
List<int> list = new List<int>();
int i;
for (i = 1; i < 33; i++)
{
list.Add(i);
}
Random rand = new Random();
int p;
int[] arr = new int[4]; // 你要的东西保存在这里
for(i = 0; i < 4; i++)
{
p=rand.Next(list.Count);
arr[i] = list[p];
list.RemoveAt(p);
}
int i;
for (i = 1; i < 33; i++)
{
list.Add(i);
}
Random rand = new Random();
int p;
int[] arr = new int[4]; // 你要的东西保存在这里
for(i = 0; i < 4; i++)
{
p=rand.Next(list.Count);
arr[i] = list[p];
list.RemoveAt(p);
}
追问
那个for(i = 0; i < 4; i++) 运行出来好像0123么
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
HashSet<int> set = new HashSet<int>();
Random r = new Random();
while (set.Count < 4)
{
set.Add(r.Next(1, 33));
}
int[] arr = set.ToArray();
arr为所求
Random r = new Random();
while (set.Count < 4)
{
set.Add(r.Next(1, 33));
}
int[] arr = set.ToArray();
arr为所求
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个问题 其实很简单, 建议你自己好好琢磨
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询