`
zqb666kkk
  • 浏览: 736428 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

在公交车上想出的一个java算法

阅读更多

回老家要做2个小时公交,是在太无聊了,脑海开始跳动波涛,于是产生一个想法:

 

现在 地球上有 1亿个人  有的人编号是 0 有的人编号是1,也有重复编号的人,编号范围是0-100,现在这些人要进入某个体育馆,体育馆的进入权限是这样的,必须是编号为0的人先进然后依次按从小到大进,直到编号为100的人进去后才会关门,禁止其他人进入,在这个过程中比如第一个人编号为0的人已经进去了,第二个一个编号为0的人就不能进来了,

输出的意思 就是:已经进来的这101个人按照编号0到100依次排开来

 

public static void main(String[] args) {
  // TODO Auto-generated method stub
  Set<Integer> nums = new HashSet<Integer>(); //set这个就把这个重复问题解决了
   
  while (nums.size() != 101) {    //这个while循环的作用是 保证生成101个数字

   int tempNum = (int) Math.round(Math.random() * 100);    //这是产生0-100的随机数
   nums.add(tempNum);    //然后添加进set集合

  }
  System.out.println(nums.size());
  Integer[] integerArray = nums.toArray(new Integer[nums.size()]);    //然后把这个不重复的0-100的  set集合转化成integer数组
  Arrays.sort(integerArray);    //通过Arrays.sort进行排序  ,从小到大排序

  for (Integer i : integerArray) {
   System.out.println(i);    //然后输出

  }
 }

 

 

   好开心终于写出来了, 

有更好的方法

进  酷影先锋 网址:javazhou.com进行留言

分享到:
评论
3 楼 zqb666kkk 2011-07-14  
赞 一楼的,我很久没上了 呵呵 ,确实表达了我的想法,比我那个写的好,呵呵
2 楼 lannerK 2011-06-27  
欢迎和我讨论你的算法,我的email : lannerk@qq.com
1 楼 lannerK 2011-06-27  
你这个算法,和你的想法有出入,因为你的想法是 “体育馆的进入权限是这样的,必须是编号为0的人先进然后依次按从小到大进,直到编号为100的人进去后才会关门,禁止其他人进入,在这个过程中比如第一个人编号为0的人已经进去了,第二个一个编号为0的人就不能进来了,”
所以,能加进数组的,就相当于已经进门了,所以加进数组的顺序,应该从 0 1 2 ...这样加进去,而不是加完进去再排序,所以算法应该这样写,并且去掉排序,因为进门的号码都是随机的

public static void main(String args[])throws Exception{

int i = 0;
List<Integer> numsArray = new ArrayList<Integer>();

while(i<101){
int tmp = (int) Math.round(Math.random() * 100);//随机进入场馆的人
System.out.println(tmp);
System.out.println("现在可以进场的号码是:["+i+"]");
if(tmp==i){//随机到是当前可以进入的号码才放行
   numsArray.add(i);
   i++;
}
sleep(1);//程序执行过快,会让cpu吃不消,所以要sleep一下
}
System.out.println("可以关门了,现在输出一下进场的人");
for (Integer num:numsArray) {
   System.out.println(num);//然后输出
  }
}

相关推荐

    上海面试java程序员题汇总.pdf,这是一份不错的文件

    例如,可以考虑公交车的体积,高尔夫球的直径,然后估算出一个近似值。 2. **清洗窗户收费问题**:这是典型的策略和商业理解问题,考察应聘者的经济思维。可能需要考虑窗户的数量、清洗难度、成本计算等因素。 3. ...

    上班通勤方案汇总分析,使用java开发测试通勤交通方式选择小游戏代码.docx

    **公交车**是大多数城市居民的选择之一。它具有成本低廉的优势,且遍布城市各个角落的线路可以方便乘客到达目的地。然而,公交车的准时性和速度常常受交通拥堵的影响,乘客往往需要在车站等待较长时间。尤其在早晚...

    精典源码之公交查询.zip

    【标题】"精典源码之公交查询.zip" 涉及的是一个公共交通查询系统的源代码,这通常是一个Web应用或者移动应用,旨在帮助用户获取公交线路...对于想要提升在交通信息领域开发能力的程序员来说,这是一个很好的学习资源。

    vb公交车查询系统设计(源代码+可执行程序+论文+开题报告+外文翻译+答辩ppt)【VB】.zip

    《VB公交车查询系统设计》是一套完整的项目资料,包含了源代码、可执行程序、相关论文、开题报告、外文翻译以及答辩PPT等多方面内容。这套资源为学习和研究VB(Visual Basic)编程语言在公交查询系统开发中的应用...

    公交查询系统

    公交查询系统是一个面向公众服务的在线应用,旨在帮助用户便捷地获取公共交通信息,特别是公交车的路线、时刻表以及与之相关的周边服务。该系统通常具备以下几个核心功能: 1. **车次查询**:用户可以输入想要查询...

    百度定位和路线规划Demo

    总结起来,百度定位和路线规划Demo是一个集成了定位、跟从、罗盘模式和路线规划的示例项目,对于想要在Android应用中集成百度地图服务的开发者而言,这是一个宝贵的参考资料。通过深入研究和实践,开发者可以更好地...

    licenta-lcs:自动从code.google.complicenta-lcs导出

    在这个项目中,LCS可能被用来找出公交线路中的最优路径,以减少拥堵、提高效率并优化乘客的出行体验。 由于项目是从code.google.com/p/licenta-lcs导出的,我们可以推断它最初是在Google Code平台上托管的。Google ...

    TrafficBuilder:流量生成器存储库

    【TrafficBuilder:流量生成器存储库】是一款基于Java开发的游戏项目,主要目标是构建一个模拟交通建设的游戏环境。在这个游戏中,玩家将扮演...对于想学习游戏开发或者Java编程的人员来说,这是一个极好的学习资源。

Global site tag (gtag.js) - Google Analytics