
生成1-35 这个35个数字 而后随机分成7组 每组包含5个数
首先是生成1-35这个35个数字而后随机分成7组每组包含5个数但每个数不能重复比如第一组里有1这个数那剩下的6组包括第一组的另外4个数只能在2-35里面随机组成...
首先是生成1-35 这个35个数字 而后随机分成7组 每组包含5个数
但每个数不能重复 比如第一组里有1这个数 那剩下的6组 包括第一组的另外4个数 只能在2-35里面随机组成 展开
但每个数不能重复 比如第一组里有1这个数 那剩下的6组 包括第一组的另外4个数 只能在2-35里面随机组成 展开
8个回答
展开全部
static void Main(string[] args)
{
// 首先是生成1-35 这个35个数字 而后随机分成7组 每组包含5个数
//但每个数不能重复 比如第一组里有1这个数 那剩下的6组 包括第一组的另外4个数 只能在2-35里面随机组成
//首先生成35个数字
List<int> dataSource = new List<int>();
for (int i = 1; i <= 35; i++)
dataSource.Add(i);
//开始随即分组,外侧循环7次,分为7组
List<List<int>> groups = new List<List<int>>();
for (int i = 0; i < 7; i++)
{
//内侧循环5次,每组生成5个数字
List<int> lst = new List<int>();
Console.WriteLine("第{0}个分组的数字为:", i + 1);
for (int j = 0; j < 5; j++)
{
//随即取数字,根据dataSource的长度来随即一个索引,利用这个索引取出dataSource中的数字假如分组中,然后将这个数字从dataSource中移除
int index = new Random().Next(dataSource.Count);
int number = dataSource[index];
lst.Add(number);
dataSource.RemoveAt(index);
Console.Write(number + ",");
}
groups.Add(lst);//groups存放最后生成的7个分组
Console.WriteLine();
}
Console.Read();
}
展开全部
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int zu = 7;//分为7组
int count = 5;//每组5人
int total = zu * count;//总人数;
ArrayList duilie = new ArrayList(); //存储
for (int i = 0; i < zu * count; i++)
{
duilie.Add(i+1); //1-35 按顺序添加至动态数组
}
String[] fenzu=new String[total];
Random rd = new Random();
for (int j = 0; j < zu * count; j++)
{
int num=rd.Next(0,(total-=1));
fenzu[j]=duilie[num]+"";
duilie.RemoveAt(num);
Console.Write(fenzu[j] + " ");
if((1+j)%5==0) //分为 5 组
{
Console.WriteLine();
}
}
Console.Read();
}
}
}
看不懂再联系
(好像跟下面的方法一样,,哈哈,,不好意啊,,建议采用下面,,详细啊)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
static void Main(string[] args)
{
var num = new int[35] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35 };
var numList = new ArrayList(num);
var rd = new Random();
var n1 = new int[7];
var n2 = new int[7];
var n3 = new int[7];
var n4 = new int[7];
var n5 = new int[7];
for (var i = 1; i <= 5; i++)
{
for (var j = 0; j < 7; j++)
{
int n = rd.Next(0, numList.Count);
switch (i)
{
case 1:
n1[j] = Convert.ToInt16(numList[n]);
break;
case 2:
n2[j] = Convert.ToInt16(numList[n]);
break;
case 3:
n3[j] = Convert.ToInt16(numList[n]);
break;
case 4:
n4[j] = Convert.ToInt16(numList[n]);
break;
case 5:
n5[j] = Convert.ToInt16(numList[n]);
break;
}
numList.RemoveAt(n);
}
}
foreach (var t in n1)
{
Console.WriteLine(t);
}
foreach (var t in n2)
{
Console.WriteLine(t);
}
foreach (var t in n3)
{
Console.WriteLine(t);
}
foreach (var t in n4)
{
Console.WriteLine(t);
}
foreach (var t in n5)
{
Console.WriteLine(t);
}
Console.Read();
}
代码很简单,应该能看懂,希望能够帮到你。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼下代码都太冗余了。二维数组 7组每组5个元素
List<string> arr = new List<string>();
for (var i = 0; i < 35; i++)
{
arr.Add(Guid.NewGuid().ToString() + i);//Guid 每次都不一样用它排序,分组的时候提出Guid
}
arr.Sort();
string[,] arr1 = new string[7, 5];
for (var j = 0; j < 35; j++)
{
arr1[j / 5, j%5] = arr[j].Substring(36);
}
List<string> arr = new List<string>();
for (var i = 0; i < 35; i++)
{
arr.Add(Guid.NewGuid().ToString() + i);//Guid 每次都不一样用它排序,分组的时候提出Guid
}
arr.Sort();
string[,] arr1 = new string[7, 5];
for (var j = 0; j < 35; j++)
{
arr1[j / 5, j%5] = arr[j].Substring(36);
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Partition[RandomSample[Range[35]], 5]
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询