tnblog
首页
视频
资源
登录
什么时候才能领悟,取之越多失之越多
排名
5
文章
229
粉丝
15
评论
7
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

3个一组产生N组不重复的随机数,随机分组

5766人阅读 2020/1/2 11:42 总访问:1167711 评论:0 收藏:0 手机
分类: 随笔


可以用来做随机分组,思路就是先参数一个不重复的随机数列表,然后在根据几个一组进行分组即可。

例如如下需求:写段代码来让一个班的人随机分几个小队,比如这个班21个人,3个人一队


参考代码如下:

  1. public void Index()
  2. {
  3.     Response.ContentType = "text/html;charset=UTF-8";
  4.     List<string> namelist = names.Split(',').ToList();
  5.     //先随机参数不重复的随机数
  6.     Random random = new Random();
  7.     List<int> poilist = new List<int>();
  8.     for (int i = 0; i < namelist.Count; i++)
  9.     {
  10.         int randomNum = random.Next(0, namelist.Count);
  11.         if (poilist.Contains(randomNum))
  12.         {
  13.             i--;
  14.             continue;
  15.         }
  16.         poilist.Add(randomNum);
  17.     }
  18.     //根据数字分组(3个一小组),然后把结果在用个双循环输出
  19.     foreach (List<int> itemList in poilist.GroupByNum(3))
  20.     {
  21.         foreach (int item in itemList)
  22.         {
  23.             Response.Body.Write(System.Text.Encoding.UTF8.GetBytes(namelist[item] + " "));
  24.         }
  25.         Response.Body.Write(System.Text.Encoding.UTF8.GetBytes("<br/>"));
  26.     }
  27. }

GroupByNum是个根据数组分组的扩展方法,自己封装的


欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)

评价

这样学英语三个月超过你过去学三年

本文作者三年间从四级勉强及格到高级口译笔试210,口试232。找工作面试时给其口试的老外考官听了一分钟就说你的英语不用考...

C 去字符串首尾指定符号或字符 超简单方法

TrimStart():匹配开头字符,有则移除TrimEnd():匹配结尾字符,有则移除再也不用repalce substring了!!!

微信交易单号和订单号的区别

一般第三方在线支付系统中都会有两类订单号transactionId 为支付系统的订单号,由支付系统生成,并在回调时传回给商户,用...

微信密码框提示下载并安装安全控件

登录微信商户平台 输入密码时 一直提示 微信密码框提示下载并安装安全控件 点击下载重复下载了很多次 依然没有用解决办...

Quartz.NET实例动态改变周期调度。misfire、CroN

Quartz:Java编写的开源的任务调度作业框架 类似Timer之类定时执行的功能,但是更强大Quartz.NET:是把Quartz转成C# NuGet...

.NET WiNdows服务发布、安装、卸载、监听脚本。服务调试

一、脚本 为方便不用每次都去写安装卸载的脚本1.安装脚本@echooff @echo开始安装【服务】 %SystemRoot%\Microsoft.NET\Fr...

跨域问题

跨域是指浏览器无法执行其他网站的脚本。(域名不同、子域名不同、端口不同、协议不同都属于跨域)可通过前台后台两种方式...

C ?、?? 问号和2个问号的用法(类型?、对象?)

C# ?C# ???:单问号1.定义数据类型可为空。可用于对int,double,bool等无法直接赋值为null的数据类型进行null的赋值如这...

ajaxget时请求异步缓存

ajax中的get为何有时执行,有时不执行?(九十岁老太为何起死回生,数百头母猪为何半夜惨叫;女生宿舍为何频频失窃,超市方...

C out、ref关键字的用法和区别

说说自己对out、ref的认识,面试问到的几率很高哟。out:classProgram { /* *out、ref都是引用传递,传递后使用都会改变...

Socket 类

Socket 类构造函数名称说明Socket(AddressFamily,?SocketType,?ProtocolType)新实例初始化Socket类使用指定的地址族、 套...

测试

sdfsdfds

PythoN学习 <foNt color='#ff5555'>3</foNt>-爬虫基本介绍 及简单实例

爬虫爬虫就是一只猪,蜘蛛。。 网络蜘蛛。互联网是一个网由各个网站组成。无数的蜘蛛就在网上到处爬,根据网址从一个网站爬...

如何评价java11

JDK11作为LTS长期支持版本, 在今后几年会逐步像JDK8一样流行, 因为下一个LTS版本要等待3年后的JDK17了.从JDK11累积了JDK9,1...

C腾讯地图Web端定位地址搜索及手机导航

前段时间项目涉及到腾讯地图的业务,这里马克一下。一开始做腾讯地图功能完全是懵逼的,一搜网上做百度地图居多,问为什么...

NesTable设置不能拖动

让 Nestable 组件不能拖动,直接在jquery.nestable.js 文件中源码搜索var onStartEvent = function(e) 方法里面的list.drag...
你说过,人最大的敌人是自己。