黑马程序员-传智播客资料中的面试题
---------------------- ASP.Net+Unity开发、 .Net培训、期待与您交流! ----------------------
生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。(要求使用两种方法)
解答:Random类是一个伪随机数算法,原理:
r(n)=(sed+r(n-1))%100;
class MyRand{private int seed;private int prevNumber = 10;public MyRand(int seed){this.seed = seed;}public int Next(){int newRand = (seed + prevNumber) % 100;prevNumber = newRand;return newRand;}}
生成的随机数是依赖于上一个的,所以叫“随机数序列”。,确定的种子产生确定的随机数序列。
为了避免每次生成的随机数序列都一样,所以一般采用当前系统运行的毫秒数
Environment.TickCount做种子。
这就明白为什么
//for(int i = 0; i < 10; i++)
//{
// Random rand = new Random();
// Console.WriteLine(rand.Next(100));
//}
是错的。
经过反编译,Random类的无参构造函数最终也是调用有参的,传递的就是当前毫秒数
public Random() : this(Environment.TickCount)
这就验证了
//for(int i = 0; i < 10; i++)
//{
// Random rand = new Random();
// Console.WriteLine(rand.Next(100));
//}
为什么一样,或者一半一样,是因为在同一毫秒内。
做法1:
List<int> list = new List<int>();Random rand = new Random();while (list.Count < 100){int number = rand.Next(1, 101);//>=1,<101if (!list.Contains(number))//如果list中已经含有这个数,则不插入{list.Add(number);}}foreach (int i in list){Console.WriteLine(i);}
做法2:
先把1-100这100个数按顺序放入数组arr,再重复100次下面的操作,生成两个介于 >=0,<100 之间的随机数m、n,颠倒arr[m]和arr[n]的数。
int[] arr = new int[100];//把100个数顺序放入for (int i = 0; i < 100; i++){arr[i] = i + 1;}Random rand = new Random();for (int i = 0; i < 100; i++){//随机生成两个位置int m = rand.Next(0, 100);int n = rand.Next(0, 100);//颠倒两个位置int temp = arr[m];arr[m] = arr[n];arr[n] = temp;}
效率比第一种高的多,这个只需要N次,而上一种至少需要N*N次
---------------------- ASP.Net+Unity开发、 .Net培训、期待与您交流! ----------------------详细请查看: www.itheima.com
黑马程序员-传智播客资料中的面试题相关推荐
- 想进入黑马程序员——传智播客学习
前些天突然有感自己即将毕业了,小小的感触了一番.反思反思自己这几年大学的所作所为,确实学到的东西太少了,本来是学计算机网络方面的,现在都偏离了本行,搞起了软件方面,可是软件方面的基础也不扎实,面临的各 ...
- JavaWeb程序设计任务教程(黑马程序员 传智播客)测一测 编写一个Servlet,实现统计网站被访问次数的功能
详细解释已在注释中给出 package 统计网站被访问次数;import java.io.*;import javax.servlet.*; import javax.servlet.http.*;p ...
- 长沙理工计算机竞赛黑马,2018年传智播客首届“黑马杯”高校编程大赛圆满落幕...
原标题:2018年传智播客首届"黑马杯"高校编程大赛圆满落幕 传智播客首届"黑马杯"高校编程大赛于2018年9月10日正式举办.本次大赛是面向高校大学生开放的I ...
- 传智播客 .NET面试宝典(2015版)
.Net工程师面试笔试宝典 培训班常见问题 1.你们会带着我们做完整个完整的项目吗? 答:小的项目会,大的项目则不可能, 1.众所周知,随便拿出一个中等大小的项目,也需要好多个熟练的开发人员开发好多个 ...
- 传智播客 .NET面试宝典(2014版)
.Net工程师面试笔试宝典 由于这套面试题涉及的范围很泛,很广,很杂,大家不可能一天两天就看完和学完这套面试宝典,即使你已经学过了有关的技术,那么至少也需要一个月的时间才能消化和掌握这套面试宝典,所以 ...
- 传智播客 - java 就业面试题大全
从享受生活的角度上来说:"程序员并不是一种最好的职业,我认为两种人可以做程序员,第一,你不做程序员,你就没有什么工作可做,或者说是即使有可以做的工作但是你非常不愿意去做:第二,你非常痴迷 ...
- 传智播客JDBC视频教程
视频介绍: 一些视频教程通过浅显案例来让初学者感到轻松,但是课程中编写的代码不能直接应用于项目中:而本套视频教程正好相反,视频讲解者李勇老师以技术见长,性格朴实无华.不善于幽默搞笑,李勇老师编写的代码 ...
- 感谢传智播客+C#.Net学习之旅
<C#.Net基础学习视频2014版>在本月中旬左右终于学习完了,终于学完了. 自2015年暑期7月份开始学习C#.Net基础学习视频以来,直到本月才学习完 ...
- 【传智播客】Javaweb程序设计任务教程 黑马程序员 课后答案【合集】
[传智播客]Javaweb程序设计任务教程 黑马程序员 第一章 课后答案 [传智播客]Javaweb程序设计任务教程 黑马程序员 第二章 课后答案 [传智播客]Javaweb程序设计任务教程 黑马程序 ...
最新文章
- Selenium Webdriver原理终于搞清楚了
- ios逆向小试牛刀之操作手记
- div设置宽度,实现不等比缩放,或设置最小宽度 min-width
- JavaScript | 声明数组并使用数组索引分配元素的代码
- CRM 4.0得到用户个人信息
- HIT Software Construction Review Notes(1-1 Multi-Dimensional Views of Software Construction)
- java buffer类_Java ByteBuffer类
- 悲催的一下午:怎么删除360。。。
- AUDI A6 C5 627 Timer Delay Relay(延时继电器)
- 当前版本与卡刷包android_Android p系统下载-MIUI 10 Android p线刷包卡刷包最新版 - 极光下载站...
- Android人脸支付功能,OPPO Find X成为首款支持微信人脸支付的安卓手机
- RTD\RTK\PPK\PPP\DGPS\地基增强系统\星基增强系统
- spark sql 字符串转时间戳
- python 学习笔记2
- 纯0基础Java自学
- 矩阵的定义——MATLAB
- spring原理 struts2原理 hibernate原理 MyBatis原理 SpringMVC
- On-premises software 释义http://en.wikipedia.org/wiki/On-premises_software
- 黑客入门——手机wifi定位原理
- MySQL的not null default
热门文章
- pytorch报错:ValueError: num_samples should be a positive integer value, but got num_samples=0
- Microsoft Patterns Practices
- SWAT模型(建模方法、实例应用、高级进阶)技能提升
- 用IE浏览AutoCad文件的插件
- 泛微移动表单校验手机号跟邮箱
- VC2008学习笔记(二)——插入WMP控件并创建类
- 如何把一个苹果卖到100万?
- 服装行业绣印花外发加工的跟踪方法
- 北理计算机在线,祝烈煌_北京理工大学计算机学院
- 基于MATLAB的苹果外观特征检测