积极答复者
如何把1-25数值随机排序

问题
答案
-
using System.Collections; private void button1_Click(object sender, EventArgs e) { ArrayList al = new ArrayList(); StringBuilder sb = new StringBuilder(); while (true) { Random rd = new Random(); int temp = rd.Next(1,26); if (!al.Contains(temp)) { al.Add(temp); sb.Append(temp+","); } if (al.Count==25) { break; } } this.Text = sb.ToString(); }
努力+方法=成功- 已标记为答案 茉莉花 2010年5月11日 2:01
全部回复
-
using System.Collections; private void button1_Click(object sender, EventArgs e) { ArrayList al = new ArrayList(); StringBuilder sb = new StringBuilder(); while (true) { Random rd = new Random(); int temp = rd.Next(1,26); if (!al.Contains(temp)) { al.Add(temp); sb.Append(temp+","); } if (al.Count==25) { break; } } this.Text = sb.ToString(); }
努力+方法=成功- 已标记为答案 茉莉花 2010年5月11日 2:01
-
开心提供了一个方法,不知您是否满意?
如果您想获得1~25不重复的随机数(1~25自身不重复),那么请尝试以下做法:
1)使用for把1~25塞入一个List<int> numbers中。
2)使用for,加上产生一个随机下标(Random(0,numbers.Count-1)),获得numbers中的一个随机数。然后从List中删除这个下标对应的数字(使用List.RemoveAt(index))
3)把这个数字加入到一个新的List中,如此反复知直到全部完成即可。
- 已编辑 ThankfulHeartModerator 2010年5月9日 9:01
-
你好!
我帮你写了一个,先初始化一个包含数字1-25的数组,然后每次循环取一个随机位置,将这个位置的元素和最后一个位置的元素交换!你试试看:
static void Main(string[] args)
{
int[] result = new int[25];
for (int i = 0; i < 25; i++)
result[i] = i + 1;
for (int j = 24; j > 0; j--)
{
Random r = new Random();
int index = r.Next(0, j);
int temp = result[index];
result[index] = result[j];
result[j] = temp;
}
for (int i = 0; i < 25; i++)
Console.WriteLine(result[i].ToString());
}
周雪峰