在给定的一组数里面,随机抽取其中的一个数。
比如现在有一组数 5,58,12,47,69,57 没有规律的。每次从其中随机抽取一个出来。不能有重复的。 --------------------编程问答-------------------- 把数组随机排序,然后重头取到尾 --------------------编程问答-------------------- 随用随机数,去数组长度的随机数,然后将取出来的存放一起,判断本次取出来的和以前取出来是时候一直即可 --------------------编程问答-------------------- 将已取出的数字放在另一数组内每次取出值 判断是否包含在此数据中
如果包含重取 --------------------编程问答--------------------
private void button1_Click(object sender, EventArgs e)--------------------编程问答--------------------
{
Random r = new Random(Guid.NewGuid().GetHashCode());
string[] arr = { "2","5","7","1","9","4"};
foreach (string s in arr)
{
int index = r.Next(0, arr.Length);
string strTemp = arr[index];
arr[index] = arr[0];
arr[0] = strTemp;
}
foreach (string s in arr)
{
MessageBox.Show(s);
}
}
每次从其中随机抽取一个出来。不能有重复的-------病句啊
--------------------编程问答-------------------- 可能我没说得具体,那么现在有无规律的100个数,那么我现在随机从中抽取20个出来,如果说把它排了序,在从头到尾抽失去意义了。就是要随机乱抽。 --------------------编程问答-------------------- linq
var res=list.orderBy(c=> Guid.NewGuid()).take(20)--------------------编程问答-------------------- Random r = new Random(Guid.NewGuid().GetHashCode());
string[] arr = { 1,2,4,5,36,7,8}
List<int> lst=new L;ist<int>();
for(int i=0;i<20;i++)
{
lst.Add(r.Next(0, arr.Length));
}
linq arr.orderBy(a=> Guid.NewGuid()).Take(20) --------------------编程问答-------------------- int[] arr= new int[] { 1, 2, 3, 4, 5,... };
var q = (from c in abc
orderby Guid.NewGuid()
select c).Take(20);
--------------------编程问答-------------------- from c in arr --------------------编程问答-------------------- 你这貌似是想写个抽奖的程序,其实你在随机选取了之后把那个选过的数去掉就OK了,下次随机选就不会重复了。 --------------------编程问答-------------------- 学习了
补充:.NET技术 , C#